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