separate out errors into their own file, and make them slightly more helpful

fixes #9
No reason.