code: func New(client *api.Client, cw ConfigWatcher, logger *log.Logger) (*Proxy, error) {
  	return &Proxy{
  		client:     client,
  		cfgWatcher: cw,
  		stopChan:   make(chan struct{}),
  		logger:     logger,
  	}, nil
  }
docs: // New returns a proxy with the given configuration source.
  //
  // The ConfigWatcher can be used to update the configuration of the proxy.
  // Whenever a new configuration is detected, the proxy will reconfigure itself.