private void setCell(int r, int c, Cell cell)
	{
		if (c < 0 || r < 0)
			throw new IllegalArgumentException("Cell position cannot be negative. row: " + r + ", col: " + c);

		if (c > MAX_GRID || r > MAX_GRID)
			throw new IllegalArgumentException("Cell position out of bounds. Out of cells. row: " + r + ", col: " + c);

		rowIndexes.add(r);
		colIndexes.add(c);

		grid.put((r << 16) + c, cell);
	}