code: func (s *service) initialize(ctx contextAPI.Client) error {
  	s.lock.Lock()
  	defer s.lock.Unlock()
  
  	if s.ctx != nil {
  		// Already initialized
  		logger.Debugf("Already initialized with context: %#v", s.ctx)
  		return nil
  	}
  
  	discoveryClient, err := clientProvider(ctx)
  	if err != nil {
  		return errors.Wrap(err, "error creating discover client")
  	}
  
  	logger.Debugf("Initializing with context: %#v", ctx)
  	s.ctx = ctx
  	s.discClient = discoveryClient
  	return nil
  }
docs: // initialize initializes the service with client context