Reader thread refactor