Introduce event system for the modules + demo module which makes use of the system