Requirements
There is a lot of duplicate code and lack of tests have allowed inconsistent ways that dependencies can be injected. The service side should be refactored.
There should also be an arbitrary notion of queue element -> service element -> UI element (related #19)