docs: function(obj, method_name, force_call_after = 1000){
  
  		if(typeof obj[method_name] != 'function') throw new TypeError("collateCalls(): Not a method '"+method_name+ "' on "+obj.toString())
  
  		var original_fn		= obj[method_name],
  			scheduled_runs 	= {}
  
  		function requestRun(...args){
  			var str		=  	JSON.stringify(args)
  
  
  			if(!scheduled_runs[str] || !scheduled_runs[str].isPending()){
  				scheduled_runs[str] = Promise.resolve( original_fn.apply(obj, args) )
  				setTimeout( () => scheduled_runs[str] = undefined, force_call_after)
  			}
  
  			return scheduled_runs[str]
  		}
  
  		function restore(){
  			obj[method_name] = original_fn
  		}
  
  		obj[method_name] 			= requestRun
  		obj[method_name].restore 	= restore
  	}