set up a general version of the reader class (needs a couple changes still).