I noticed this while looking at #142. Some functions return integer success/failure, some throw, and some may do other things for all I know. Refactor so the error reporting is consistent.