I think it would be a bit nicer to have the `SparkUI` take an `EventBus` as a constructor argument rather than reasoning about it inside of the UI. This way you decoupled the UI functionality from whether or not the bus is running live (it seems like there are some places where you still have to do that, but as much as possible it might be nice to separate this)