Contributed by Ludwig Übele
Contributed by Thomas Hirter
Contributed by Matthijs Sluiter
Contributed by Florian Hardwig