Contributed by Florian Hardwig
Contributed by Stephen Coles
Contributed by Andy Delgado
Contributed by Andreas Seidel
Contributed by Lucille J Knight