Implementing the reader