code: func NewRegisterMonitor() *RegisterMonitor {
  	var lock sync.Mutex
  	return &RegisterMonitor{
  		Logger:          log.New(os.Stderr, "", log.LstdFlags), // default logger
  		ReconcilePeriod: RegisterReconcilePeriod,
  		TTLPeriod:       RegisterTTLPeriod,
  		lock:            &lock,
  		cond:            sync.NewCond(&lock),
  	}
  }
docs: // NewRegisterMonitor initializes a RegisterMonitor. After initialization,
  // the exported fields should be configured as desired. To start the monitor,
  // execute Run in a goroutine.