added DataReader class