Add some initial specs
Fill out specs
Add a few more edge cases
remove unused requires
add .travis.yml