Refactored ReaderCache into a separate class