Fix delegate method name to fit cocoa conventions
Avoid capturing strong reference to self in blocks
Add NSParameterAssert(s) for required arguments