The IdGenerator class should be parameterized