Contributed by Stephen Coles
Contributed by David Heasty
Contributed by hubert munier
Contributed by toga cox