Contributed by Olivier Gourvat
Contributed by David Jonathan Ross
Contributed by annie marino
Contributed by Florian Hardwig