Contributed by Philip Jursch
Contributed by Leonhard Laupichler
Contributed by TypeMates
Contributed by Viktor Zumegen