I think `ClientTransportBase`'s constructor should also take in a transport name as a parameter. This way all of are transports can have a consistent way of defining their name.