private boolean cellSurvives(Cell cell) {
		boolean isSurvivor = true;
		for (Rule rule : rules) {
			if (rule.isApplicable(getLivingState(cell)))
				isSurvivor = isSurvivor
						&& (LivingState.ALIVE == rule.validate(
								getLivingState(cell), countNeighbors(cell)));
		}
		return isSurvivor;
	}