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