Move events and event related classes to submodule
Add event dispatcher class and spec