private static void performCleanupStep1(BotState state, Moves movesSoFar) {
		List<Region> regionsToConsider = new ArrayList<>();
		for (Region region : state.getVisibleMap().getOpponentBorderingRegions(state)) {
			if (region.getIncomingArmies() > 0 && region.getOutgoingMoves().size() == 0
			// && region.getDefenceRegionValue() <
			// RegionValueCalculator.LOWEST_MEDIUM_PRIORITY_VALUE
			) {
				regionsToConsider.add(region);
			}
		}
		for (Region region : regionsToConsider) {
			int biggestOpponentAttack = getBiggestPossibleIncomingAttack(state, region);
			AttackTransferMove biggestTransfer = getBiggestIncomingTransfer(state, region);
			boolean isTransferingBetter = isTransferingBetter(state, region, biggestOpponentAttack, biggestTransfer);
			if (isTransferingBetter) {
				int armiesToShift = region.getArmiesAfterDeployment() - region.getArmies();
				movesSoFar.armyPlacementMoves.removeAll(region.getArmyPlacement());
				region.getArmyPlacement().clear();
				Region fromRegion = biggestTransfer.getFromRegion();
				PlaceArmiesMove pam = new PlaceArmiesMove(state.getMyPlayerName(), fromRegion, armiesToShift);
				movesSoFar.armyPlacementMoves.add(pam);
				fromRegion.addArmyPlacement(pam);
				biggestTransfer.setArmies(biggestTransfer.getArmies() + armiesToShift);
			}
		}
	}