Updated the README with better descriptions and tidied up some of the code