Created by greg aponte
Contributed by Ivar Sakk
Contributed by Nils Küppers
Contributed by Nick Sherman
Contributed by Mark Simonson