declare adhering to the NSObject protocol
don't retain self
methodSignatureForSelector