Refactored to Modern Objective-C.