Created by Thomas van der Putten
Contributed by Rafael Nobre
Contributed by Grant Hutchinson
Contributed by Thomas Hirter