Contributed by Philipp Zurmöhle
Contributed by Bryson Stohr
Contributed by Julian Schröpel
Contributed by Florian Hardwig
Contributed by Chris Purcell
Contributed by Stephen Coles