Restructure client to provide both safe methods and methods that throw exceptions
Use them as appropriate in the various update tasks