added data generator (incomplete)