code: static <W, R> TcpClientImpl<W, R> _create(ClientState<W, R> state,
                                                                        TcpClientEventPublisher eventPublisher) {
          DetachedChannelPipeline channelPipeline = state.unsafeDetachedPipeline();
          state = state.channelProviderFactory(new TcpChannelProviderFactory(channelPipeline,
                                                                             state.getChannelProviderFactory()));
  
          HostConnectorFactory<W, R> hostConnectorFactory = new HostConnectorFactory<>(state, eventPublisher);
  
          ConnectionProvider<W, R> cp = state.getFactory()
                                               .newProvider(state.getHostStream().map(hostConnectorFactory));
  
          InterceptingTcpClient<W, R> interceptingTcpClient = new InterceptingTcpClientImpl<>(cp, eventPublisher);
          TcpClientImpl<W, R> client = new TcpClientImpl<>(state, eventPublisher, interceptingTcpClient);
          client.requestSetLazily = new ConnectionRequestImpl<>(cp);
          return client;
      }
docs: /*Visible for testing