harvester refactoring