First step to refactoring somewhat; the factory is being absorbed into the API, as are some of the transport controller functions. Should be much simpler to use as a consequence.