Contributed by Dima Verovkin
Contributed by Florian Hardwig
Contributed by Stephen Coles
Contributed by Pierrick Boffy
Contributed by Regys Lima