Extract ClientTransport to its own class file