Contributed by TYPE01
Contributed by Julian Schröpel
Contributed by Stephan Peters
Contributed by Stephen Coles
Contributed by Nick Sherman