Is it necessary to maintain another callback list here? If not, we can just use delegate.unsubscribe() to remove callbacks.