code: func initClient(conn net.Conn, opts *Opts) (*Client, error) {
  	// Send the preamble
  	_, err := conn.Write([]byte(clientPreamble))
  	if err != nil {
  		return nil, fmt.Errorf("preamble write failed: %v", err)
  	}
  
  	// Wrap the connection in yamux for multiplexing
  	ymConf := yamux.DefaultConfig()
  	if opts.LogOutput != nil {
  		ymConf.LogOutput = opts.LogOutput
  	}
  	client, _ := yamux.Client(conn, ymConf)
  
  	// Create the client
  	c := &Client{
  		conn:   conn,
  		client: client,
  	}
  	return c, nil
  }
docs: // initClient does the common initialization