code: function on(event, callback, context) {
          var events = eventsplitter.test(event)
              ? event.split(eventsplitter)
              : [event];
  
          this.events = this.events || (this.events = {});
  
          while (event = events.shift()) {
            if (!event) continue;
  
            (this.events[event] = this.events[event] || []).push({
                context: context
              , callback: callback
            });
          }
  
          return this;
        }
docs: Adds an event listener.
  
  @param {String} events space separated list of events to listen on
  @param {Function} callback
  @param {Mixed} context
  @api public