add adopting modern objective-c