docs: function chainSteps(/*fun1, fun2, ..., funN*/) {
  	var steps = slice.call(arguments);
  	return function(/*arg1, ... argN, callback*/) {
  		var initArgs = slice.call(arguments);
  		var callback = initArgs.pop();
  		if (!callback) {
  			throw new Error('Callback is missing');
  		}
  		iterateSteps(steps, initArgs, callback);
  	};
  }