using new method in OAuth to ensure compat with other oauth models
drastic cleanup to error handling
we should reexport the console library, right? Seems to make sense
oops with the drastic cleanup
one more bit that can be made const