updated to bring it on par with the latest Objective-C features.