Created by Grant Hutchinson
Contributed by Robin Rendle
Contributed by Stephen Coles
Contributed by Thiago
Contributed by Craig Stainton