finished refactoring, getting started on the findGatheringPoint algorithm