Objective-C how does it work