Contributions from Mark Keller