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