I would consider moving this implementation to `ClientTransportBase` since I believe this is the same for all transports.