public sealed override void Unload()
        {
            if (eventSubscriber != null)
            {
                eventSubscriber.UnSubscribeAll();
                ReferencePool.Release(eventSubscriber);
                eventSubscriber = null;
            }

            OnUnload();
        }