added data generation with better variance