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