code: function() {
              //add the proper number of arguments before adding remaining values
              if (!args.length) {
                args = Array(configs.length);
              }
              //fire callback with args and remaining values concatenated
              return callback.apply(null, args.concat(values));
            }
docs: config format: [String, false, ''], [Number, false, 0], [Function, false, function(){}] config doesn't need a default value. config can also be classes instead of an array if not required and no default value.