Allow clients to attach extra completion handlers
Check if delegate implements a completion method before messaging
Can't complete more than once