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

fixes #9
Why not use #message for all these?