code: func (mod *GitterBee) Run(eventChan chan bees.Event) {
  	mod.eventChan = eventChan
  
  	mod.roomChans = make(map[string]chan interface{})
  	mod.client = gitter.New(mod.accessToken)
  	user, err := mod.client.GetUser()
  	if err != nil {
  		mod.LogErrorf("Failed to fetch current user: %v", err)
  		return
  	}
  	mod.userID = user.ID
  
  	for _, room := range mod.rooms {
  		mod.join(room)
  	}
  
  	select {
  	case <-mod.SigChan:
  		for room := range mod.roomChans {
  			mod.leave(room)
  		}
  		return
  	}
  }
docs: // Run executes the Bee's event loop.