add data generation