Added a Component class for shared code
Added a 2nd argument $config to transport()
Updated docblocks