code: function (type, fn, context) {
  		this._events = this._events || {};
  
  		/* get/init listeners for type */
  		var typeListeners = this._events[type];
  		if (!typeListeners) {
  			typeListeners = {
  				listeners: {},
  				count: 0
  			};
  			this._events[type] = typeListeners;
  		}
  
  		var contextId = context && context !== this && L.stamp(context),
  		    newListener = {fn: fn, ctx: context};
  
  		if (!contextId) {
  			contextId = 'no_context';
  			newListener.ctx = undefined;
  		}
  
  		// fn array for context
  		var listeners = typeListeners.listeners[contextId];
  		if (!listeners) {
  			listeners = [];
  			typeListeners.listeners[contextId] = listeners;
  		}
  
  		// check if fn already there
  		for (var i = 0, len = listeners.length; i < len; i++) {
  			if (listeners[i].fn === fn) {
  				return;
  			}
  		}
  
  		listeners.push(newListener);
  		typeListeners.count++;
  	}
docs: attach listener (without syntactic sugar now)