code: func (e *Emitter) Init() {
  	e.handlers = make(map[string]EventHandlerFunc)
  	e.event = make(chan Event)
  
  	// event handler
  	go func() {
  		for {
  			ev := <-e.event
  
  			if fn, ok := e.handlers[ev.Name]; ok {
  				if fn(ev) {
  					break
  				}
  			} else if fn, ok := e.handlers[ALL]; ok {
  				if fn(ev) {
  					break
  				}
  			} else {
  				if e.verbose {
  					log.Println("unhandled Emit", ev)
  				}
  			}
  		}
  
  		close(e.event) // TOFIX: this causes new "emits" to panic.
  	}()
  }
docs: // Init initialize the emitter and start a goroutine to execute the event handlers