public boolean relaxedEquals(TraceDifference diff) {
		
		if (this.activities.size() != diff.getActivities().size()) {
			return false;
		}
		if (!this.fromNode.equals(diff.getFromNode())) {
			return false;
		}
		if (this.toNode == null || diff.getToNode() == null) {
			if (!(this.toNode == null && diff.getToNode() == null)) {
				return false;
			} 
		} else { 
			if (!this.toNode.equals(diff.getToNode())) {
				return false;
			}
		}
		for (int i = 0; i < this.activities.size(); i++) {
			if (!activities.get(i).equals(diff.getActivities().get(i))) {
				return false;
			}
		}
		return true;
	}