Contributed by JAF
Contributed by Veronica Belous
Contributed by Florian Hardwig
Contributed by Koray Löker
Contributed by Jack Frischer