Currently, this just throws general RuntimeExceptions, plus ResourceNotFoundException. Should also throw other exceptions, like InvalidCredentialsException, et al. Doesn't need to throw ALL possible exceptions, but should at least be richer than it currently is.