Contributed by Lennart Klein
Contributed by Axel Pelletanche Thévenart
Contributed by Fabian Maier-Bode