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