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