Created by Lars Ott
Contributed by Andrew Lohin
Contributed by Florian Hardwig
Contributed by Stephen Coles