added classes for data generation