fix error types, support promises on convenience methods

closes #48
Merge pull request #49 from jonathanong/strings-are-not-errors

fix error types, support promises on convenience methods