Contributed by Florian Hardwig
Contributed by Lucas Descroix
Contributed by Shahab Siavash
Contributed by Edward Dzulaj