added a request object that is be used by the reader and the writer to reuse code