Added credits for the initial implementation to Stephen Boak