data generation revamp