Updated to modern Objective-C