code: function(implementOn, event, callback, selector, context, once) {
  	var self = this,
  
  	stringy = callback.toString(),
  	
  	wrappedListener = function (e){
  
  		var eventWrapper = new NWTEventInstance(e),
  
  		selfCallee = arguments.callee,
  
  		returnControl = function() {
  			// Call the callback
  			// Prepend the wrapped event onto the argument list so we can expect what arguments we get
  			localnwt.event._eventData.unshift(eventWrapper);
  			callback.apply(implementOn, localnwt.event._eventData);
  			localnwt.event._eventData = [];
  
  			if (once) {
  				implementOn.removeEventListener(event, selfCallee);
  			}
  		};
  
  		if (selector) {
  			implementOn.all(selector).each(function(userEl) {
  				if (userEl._node == eventWrapper.target._node) {
  					returnControl();
  				}
  			});
  			return;
  		}
  		returnControl();
  	};
  
  	// Push the callback onto the cached string
  	self._cached[stringy] = self._cached[stringy] || [];
  	self._cached[stringy].push({
  		type: event,
  		obj: implementOn,
  		fn: wrappedListener,
  		raw: callback
  	})
  
  	return wrappedListener;
  }
docs: Wraps an event callback so we can attach/detach it