Contributed by Stephen Coles
Contributed by Jan Middendorp
Contributed by Anna Giedryś
Contributed by Florian Hardwig