improve specs, work on error handling

I could be wrong, but this may be required for everything to run smoothly through travis ci