code: func (m *Manager) AddWatcher(w Watcher) error {
  	m.Lock()
  	defer m.Unlock()
  
  	_, ok := m.watchers[w.Name()]
  	if ok {
  		m.machine.Errorf("manager", "Already have a watcher %s", w.Name())
  		return fmt.Errorf("watcher %s already exist", w.Name())
  	}
  
  	m.watchers[w.Name()] = w
  
  	return nil
  }
docs: // AddWatcher adds a watcher to a managed machine