Contributed by Matthijs Herzberg
Contributed by Jens Riedweg
Contributed by TypeMates
Contributed by Stephen Coles