Contributed by Florian Hardwig
Contributed by james millner
Contributed by Nicolas Pellerin
Contributed by Gareth Hague
Contributed by Boris Meister
Contributed by Stephen Coles