Contributed by Ludwig Übele
Contributed by Jan Fromm
Contributed by Florian Hardwig
Contributed by Stephen Coles