Right now the horribly named FIllme Class uses the supplied default value to determine if the generator should be called or if the default value is simply returned. I'm thinking of moving this to the actual generator itself.
So Generate would have an overloaded method that accepted something as a parameter and returned that
Generate(Random random) - would return the random name but
Generate(String firstname) - would just return the firstname parameter
This would allow moving the decision making a little deeper into the call stack.