code: function sortTasks(tasks, callback){
  	async.waterfall([
  		function(done){
  			var availTasks = {};
  			var tree = {};
  			forEach(tasks, function(obj, key){
  				obj.name = obj.name || obj.id || obj.identity || key || "unknown";
  				obj.ext = (obj.ext && obj.ext.indexOf('.') != -1) ? obj.ext : ('.'+obj.ext);
  				availTasks[obj.name] = obj;
  				tree[obj.name] = (obj.runBefore) ? ( (isArray(obj.runBefore)) ? obj.runBefore : [obj.runBefore]) : [];
  			});
  			done(null, DepResolver(tree).map(function(name){ return availTasks[name]; }))
  		}
  	], callback);
  }
docs: /*Private Functions