improve specs, work on error handling

yes, I like it.