Broke implementation out into its own separate module, ready for uploading to GitHub
Updated readme