Delegate used to handle Completion and failure events