exported transports so that we can write 3rd party libraries that
subclass the Transport class