code: func (lc *Lifecycle) AddListener(listener LifeCycleChangeListener) {
  	lc.Lock()
  	defer lc.Unlock()
  	lc.listeners = append(lc.listeners, listener)
  }
docs: // AddListener registers the given listener to be triggered upon a lifecycle change