implement object generator.