pub trait Controller {
// Required methods
fn add_event_observer(&mut self, sender: Sender<Event>);
fn add_state_handler(&mut self, handler: Box<dyn StateHandler>);
fn get_event_sender(&self) -> EventSender;
fn start(&mut self, state_machine: Box<dyn EventProcessor>);
}