docs: function run_promises(promise_runner_stack,
  		      accumulator_function, final_function, error_function){
      if( ! us.isEmpty(promise_runner_stack) ){
  	var promise_runner = promise_runner_stack.shift();
  	promise_runner().then(function(resp){
  	    accumulator_function(resp);
  	    run_promises(promise_runner_stack,
  			 accumulator_function, final_function, error_function);
  	}).fail(function(err){
  	    if(err){
  		error_function(err);
  	    }
  	}).done();
      }else{
  	final_function();
      }
  }