code: func (e *examplePlugin) Serve(services ...string) error {
  	klog.Infof("starting example server at: %s\n", e.endpoint)
  	lis, err := net.Listen("unix", e.endpoint)
  	if err != nil {
  		return err
  	}
  
  	klog.Infof("example server started at: %s\n", e.endpoint)
  	e.grpcServer = grpc.NewServer()
  
  	// Registers kubelet plugin watcher api.
  	registerapi.RegisterRegistrationServer(e.grpcServer, e)
  
  	for _, service := range services {
  		switch service {
  		case "v1beta1":
  			v1beta1 := &pluginServiceV1Beta1{server: e}
  			v1beta1.RegisterService()
  			break
  		case "v1beta2":
  			v1beta2 := &pluginServiceV1Beta2{server: e}
  			v1beta2.RegisterService()
  			break
  		default:
  			return fmt.Errorf("Unsupported service: '%s'", service)
  		}
  	}
  
  	// Starts service
  	e.wg.Add(1)
  	go func() {
  		defer e.wg.Done()
  		// Blocking call to accept incoming connections.
  		if err := e.grpcServer.Serve(lis); err != nil {
  			klog.Errorf("example server stopped serving: %v", err)
  		}
  	}()
  
  	return nil
  }
docs: // Serve starts a pluginwatcher server and one or more of the plugin services