Refactor Harvesting framework