Created by Florian Bauer
Contributed by Stephen Coles
Contributed by Ada Pawlikowska
Contributed by Richard Lipton