added training data generator