Created by Si Dhanak
Contributed by Maurice Meilleur
Contributed by Andreas Kofler
Contributed by Stephen Coles