Contributed by Mathieu Christe
Contributed by Sharp Type
Contributed by Matthijs Sluiter
Contributed by Alexander Roth