Implemented most of the Objective-C client API