Contributed by Paulo Goode
Contributed by Florian Hardwig
Contributed by Stephen Coles
Contributed by Johannes Vandenheuvel
Contributed by Steve O Connell