Contributed by Stephen Coles
Contributed by Andreas Kofler
Contributed by Garrison Martin
Contributed by Roger Black