code: func NewNatsRPCServer(
  	config *config.Config,
  	server *Server,
  	metricsReporters []metrics.Reporter,
  	appDieChan chan bool,
  ) (*NatsRPCServer, error) {
  	ns := &NatsRPCServer{
  		config:           config,
  		server:           server,
  		stopChan:         make(chan bool),
  		unhandledReqCh:   make(chan *protos.Request),
  		dropped:          0,
  		metricsReporters: metricsReporters,
  		appDieChan:       appDieChan,
  	}
  	if err := ns.configure(); err != nil {
  		return nil, err
  	}
  
  	return ns, nil
  }
docs: // NewNatsRPCServer ctor