cleaned up some code
updated the readme
wrote a ton of specs