Created by Simon Nicol
Contributed by Balder D. Dysthe
Contributed by Stephen Coles
Contributed by Stéphane Darricau