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