Contributed by Florian Hardwig
Contributed by Claudio Piccinini
Contributed by Clay Hickson
Contributed by Stephen Coles