code: func New(cfg *Config) (*ConnManager, error) {
  	if cfg.Dial == nil {
  		return nil, ErrDialNil
  	}
  	// Default to sane values
  	if cfg.RetryDuration <= 0 {
  		cfg.RetryDuration = defaultRetryDuration
  	}
  	if cfg.TargetOutbound == 0 {
  		cfg.TargetOutbound = defaultTargetOutbound
  	}
  	cm := ConnManager{
  		cfg:      *cfg, // Copy so caller can't mutate
  		requests: make(chan interface{}),
  		quit:     make(chan struct{}),
  	}
  	return &cm, nil
  }
docs: // New returns a new connection manager.
  // Use Start to start connecting to the network.