change DefaultIdGeneratorFactory to create IdGenerator on demand