I suggest to simply accept an array of callables as formatters. If users want to pass arguments, they can always create a closure. Something like:

```php
$formatters = [
  [$generator, 'number'],
  [$generator, 'userAgent'],
  function() use($generator) {
    return $generator->numberBetween(5, 10);
  }
];
```