Upgraded to ARC and modern objective-C syntax.