Added event triggering system (with unit test)