Created by Saleem Reshamwala
Contributed by Andreas Kofler
Contributed by Daniel Mall
Contributed by Stephen Coles