static factories for Bus

This allows us to hide the implementation class so that we can later
take advantage of polymorphism to efficiently present different
interfaces with the same instance.