Use contract for event dispatcher
Merge pull request #6233 from brightmachine/event-dispatcher-container-contract

[5.0] Use Contract For Event Dispatcher