updated data generator