private void step(GameGrid grid) {
		for (int i = 0; i < grid.getTotalGridSize(); i++) {
			for (int j = 0; j < grid.getGridCellContents().get(i)
					.getCellNeighbours().size(); j++) {
				gameRules.deadWithThreeLivingNeighboursSpawn(grid
						.getGridCellContents().get(i));
				gameRules.tooManyOrTooLittleNeighbours(grid
						.getGridCellContents().get(i));
			}
		}

		for (int i = 0; i < grid.getTotalGridSize(); i++) {
			if (grid.getGridCellContents().get(i).isSwitchState()) {
				grid.getGridCellContents()
						.get(i)
						.setStateAlive(
								!grid.getGridCellContents().get(i)
										.isStateAlive());
				grid.getGridCellContents().get(i).setSwitchState(false);
			}
		}
	}