on (event, handler) {
    if (isArray(event)) {
      for (let i = 0; i < event.length; i++) {
        this.on(event[i], handler)
      }

      return
    }

    // Create the event's object if not yet created
    if (!this.hop.call(this.events, event)) {
      this.events[event] = []
    }

    // Add the handler to queue
    const index = this.events[event].push(handler) - 1

    // Provide handle back for removal of event
    return {
      remove () {
        delete this.events[event][index]
      }
    }
  }
Adds listener to the specifed event.

@param {String|Array} event
@param {Function} handler