public HashSet<BoardCell> getTargets(int index, int steps) {
		// This is the initial setup function that calls our recursive calcTargets().
		HashSet<Integer> targetList = new HashSet<Integer>();
		HashSet<Integer> visitedList = new HashSet<Integer>();
		steps = steps + 1;
		if(getCellAt(index).isDoorway()) {
			targetList = calcTargets(getAdjList(index).get(0), steps - 1, targetList, visitedList);
			targetList.remove(index);
		} else {
			targetList = calcTargets(index, steps, targetList, visitedList);
		}
		// Ssh, this was a Set of cells all along.
		HashSet<BoardCell> targetCells = new HashSet<BoardCell>();
		for(int target : targetList) {
			targetCells.add(getCellAt(target));
		}
		return targetCells;
	}