Implementation in Objective-C