Filled out the README, a little refactoring and documentation