Custom error messages
Some functions rely on underlying Node module errors, which can result in issues like #63 (closed) where the messages change and have to refactor tests. Investigate throwing custom errors for these cases.
Edited by Aaron Goldenthal