pub type EventBus<T> = EventBus<T>;
pub struct EventBus<T> { pub subscribers: Vec<Box<dyn Subscriber<Input = T>>>, /* private fields */ }
subscribers: Vec<Box<dyn Subscriber<Input = T>>>