update adopt modern objective-c