Updated DataReader

- DataReader now uses Precision instead of short int
- DataReader collects chunks of data before writing to the buffer
- DataReader is created in the main function and should load data