private static List<Cell> getNeighbourCells(Cell cell, Grid grid) {
		int cellRow = cell.getX();
		int cellColumn = cell.getY();
		List<Cell> aliveNeighbors = new ArrayList<Cell>();
		for (int i = -1; i <= 1; i++)
			for (int j = -1; j <= 1; j++) {
				int neighborRow = cellRow + i;
				int neighborColumn = cellColumn + j;
				if (i == 0 && j == 0) {
					// do nothing as it is same cell
				} else if (neighborRow < 0 || neighborRow >= ROW_MAX_SIZE ) {
					// do nothing as location is not part of grid
				} else if(neighborColumn < 0 || neighborColumn >= COLUMN_MAX_SIZE ) {
					// do nothing as location is not part of grid
				} else {
					Cell neighborCell = grid.getCell(neighborRow, neighborColumn);
					if (neighborCell.getState().equals(State.ALIVE))
						aliveNeighbors.add(neighborCell);
				}
			}
		return aliveNeighbors;
	}