Allow the system.api to register multiple items for the same intent
Broke up util so that pieces used only by the bus are not in the client