code: function(func,factor) {
  		return function() {
  
  			/* globals setTimeout: false */
  
  			var args = Array.prototype.slice.call(arguments),
  				cb;
  			while (typeof args.slice(-1)[0] === 'function') {
  				cb = args.pop();
  			}
  			if (factor === false) {
  				return cb(func.apply(this._inst,args));
  			}
  			setTimeout(function() {
  				var r = [func.apply(this._inst,args)];
  				if (nodeStyle) {
  					r.unshift(null);
  				}
  				cb.apply(this, r);
  			}.bind(this),Math.floor(Math.random() * factor) + 1);
  		};
  	}
docs: Takes a function and a factor and returns an asynchronous (if factor != false) function which wraps the func and passes it's parameters through with the addition of a callback