Throw exceptions properly,

don't just catch them an print a vague error message. We need to see what went wrong.
Fix tests

(even though they're ignored...)