adding new implementation of data generator