New refactored data generator