Contributed by Ignasi Àvila Padró
Contributed by Andreas Seidel
Contributed by Nick Sherman
Contributed by Stephen Coles