/// <summary> Events callback. Called whenever said event is published by the mediator. </summary>
        /// <param name="eventArgs"> the event arguments </param>
        protected sealed override void OnEvent(TEvent eventArgs)
        {
            if (!ShouldCreate(eventArgs))
            {
                return;
            }
            T instance = Create(eventArgs);

            OnCreate.SafeInvoke(instance, eventArgs);
        }