Contributed by Florian Hardwig
Contributed by Julian Schröpel
Contributed by Stephen Coles
Contributed by Garrison Martin