We should be calling fail('with error messages') rather than throwing new Error()s, generally.