Contributed by verena gerlach
Contributed by Patrick Concannon
Contributed by Florian Hardwig
Contributed by Jack Grimes
Contributed by Jake Internet