Refactoring: ReaderStrategy separated from the CheckpointStrategy