New exception: UnknowError if something weird went wrong
When there's a bad input, the exception shoudl show it
docs for unknown error
clean up, shorter code
docs on tests & hacking