The module should only prepare the content to be displayed and emit an event when necessary instead of update the UI by itself.