Delegates are a real pain in the ars. Objective-C Blocks rule.