Contributed by Stephen Coles
Contributed by Martin Vácha
Contributed by Mihail Mihaylov
Contributed by David Einwaller