sane error handling: return *client.Error instead of client.Error. Still satifies error interface, and can be tested with idiomatic if err != nil
atg. client returns nil on success.