Contributed by Pavel Kedich
Contributed by Matthijs Sluiter
Contributed by Love Lagerkvist
Contributed by Adelina Shaydullina