improve DataSetReader