split out handler from harvester