Contributed by Martin LAVIELLE
Contributed by Stephen Coles
Contributed by Rob Hudson
Contributed by Florian Hardwig