MDL-39846 implement new event dispatching

This includes incomplete base event class which will be finished later in MDL-39844.