Add initial event implementation (to be refactored for better
architecture)