synthetic data generation code added