Custom event with generic delegate EventHandler<T> implemented