	public void execute() {
		Rule first = _firstRule;
		Rule second = _secondRule;
		_aggInfo = new TggAggInfo(_trafo);
		_aggInfo.extendDueToTGG(layoutSystem);
		List<CriticalPair> critPairList = _aggInfo.getConflictOverlappings(first, second);
		if (critPairList != null && !critPairList.isEmpty()) {
			for (CriticalPair critPair : critPairList) {
			List<Mapping> mappingsOverToR1 = critPair.getMappingsOverlappingToRule1();
			List<Mapping> mappingsOverToR2 = critPair.getMappingsOverlappingToRule2();
			List<Mapping> mappingsR1ToR2 = critPair.getMappingsRule1ToRule2();
			Graph over = critPair.getOverlapping();
			CritPair newCrit = TGGFactory.eINSTANCE.createCritPair();
				newCrit.setName("CP"+(critPairList.indexOf(critPair)+1));
			newCrit.setOverlapping(over);
			newCrit.setRule1(critPair.getRule1());
			newCrit.setRule2(critPair.getRule2());
			newCrit.getMappingsOverToRule1().addAll(mappingsOverToR1);
			newCrit.getMappingsOverToRule2().addAll(mappingsOverToR2);
			newCrit.getMappingsRule1ToRule2().addAll(mappingsR1ToR2);
			layoutSystem.getCritPairs().add(newCrit);
			_trafo.getInstances().add(over);
				changeToTGGGraph(over);
				markCriticalObjects(over, _aggInfo.getCriticalObjects().get(critPair));
				System.out.println("Adding CritPair "+newCrit.getName()+" for "+_firstRule.getName()+" with "+_secondRule.getName()+" finished.");
		}
		} else {
		}
		super.execute();
	}

	public void execute() {
		Rule first = RuleUtil.copyRule(_firstRule);
		Rule second = RuleUtil.copyRule(_secondRule);
		_aggInfo = new TggAggInfo(_trafo);
		_aggInfo.extendDueToTGG(layoutSystem);
		List<CriticalPair> critPairList = _aggInfo.getConflictOverlappings(first, second);
		if (critPairList != null && !critPairList.isEmpty()) {
			for (CriticalPair critPair : critPairList) {
			List<Mapping> mappingsOverToR1 = critPair.getMappingsOverlappingToRule1();
			List<Mapping> mappingsOverToR2 = critPair.getMappingsOverlappingToRule2();
			List<Mapping> mappingsR1ToR2 = critPair.getMappingsRule1ToRule2();
			Graph over = critPair.getOverlapping();
			CritPair newCrit = TGGFactory.eINSTANCE.createCritPair();
				newCrit.setName("CP"+(critPairList.indexOf(critPair)+1));
			newCrit.setOverlapping(over);
			newCrit.setRule1(critPair.getRule1());
			newCrit.setRule2(critPair.getRule2());
			newCrit.getMappingsOverToRule1().addAll(mappingsOverToR1);
			newCrit.getMappingsOverToRule2().addAll(mappingsOverToR2);
			newCrit.getMappingsRule1ToRule2().addAll(mappingsR1ToR2);
			layoutSystem.getCritPairs().add(newCrit);
			_trafo.getInstances().add(over);
				changeToTGGGraph(over);
				markCriticalObjects(over, _aggInfo.getCriticalObjects().get(critPair));
				System.out.println("Adding CritPair "+newCrit.getName()+" for "+_firstRule.getName()+" with "+_secondRule.getName()+" finished.");
		}
		} else {
			DeleteRuleCommand c1 = new DeleteRuleCommand(first);
			DeleteRuleCommand c2 = new DeleteRuleCommand(second);
			c1.execute();
			c2.execute();
		}
		super.execute();
	}
