This module should be a data provider, which means it should not have any logic related to UI. The module notifies all state changes via events and updates the state by itself.