migrated to modern Objective-C syntax