public BoardCell getCellAt(int i) {
		if(cellCache.get(i) == null) {
			// Then create the cell.
			if(config[i].equals(WALKWAY_INITIAL)) {
				cellCache.put(i, new WalkwayCell(i, numRows, numCols));
			} else {
				cellCache.put(i, new RoomCell(i, numRows, numCols, config[i]));
			}
		}
		return cellCache.get(i);
	}