diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/emf-gen/org/eclipse/qvtd/pivot/qvtimperative/evaluationstatus/util/EvaluationStatusAdapterFactory.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/emf-gen/org/eclipse/qvtd/pivot/qvtimperative/evaluationstatus/util/EvaluationStatusAdapterFactory.java
index 94b35e9..a27fd40 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/emf-gen/org/eclipse/qvtd/pivot/qvtimperative/evaluationstatus/util/EvaluationStatusAdapterFactory.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/emf-gen/org/eclipse/qvtd/pivot/qvtimperative/evaluationstatus/util/EvaluationStatusAdapterFactory.java
@@ -81,43 +81,43 @@
 	 */
 	protected EvaluationStatusSwitch<@Nullable Adapter> modelSwitch =
 			new EvaluationStatusSwitch<@Nullable Adapter>() {
-			@Override
-			public Adapter caseAssociationStatus(AssociationStatus object) {
-				return createAssociationStatusAdapter();
-			}
-			@Override
-			public Adapter caseAttributeStatus(AttributeStatus object) {
-				return createAttributeStatusAdapter();
-			}
-			@Override
-			public Adapter caseClassStatus(ClassStatus object) {
-				return createClassStatusAdapter();
-			}
-			@Override
-			public Adapter caseElementStatus(ElementStatus object) {
-				return createElementStatusAdapter();
-			}
-			@Override
-			public Adapter caseEvaluationElement(EvaluationElement object) {
-				return createEvaluationElementAdapter();
-			}
-			@Override
-			public Adapter caseMappingStatus(MappingStatus object) {
-				return createMappingStatusAdapter();
-			}
-			@Override
-			public Adapter casePropertyStatus(PropertyStatus object) {
-				return createPropertyStatusAdapter();
-			}
-			@Override
-			public Adapter caseTransformationStatus(TransformationStatus object) {
-				return createTransformationStatusAdapter();
-			}
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter caseAssociationStatus(AssociationStatus object) {
+			return createAssociationStatusAdapter();
+		}
+		@Override
+		public Adapter caseAttributeStatus(AttributeStatus object) {
+			return createAttributeStatusAdapter();
+		}
+		@Override
+		public Adapter caseClassStatus(ClassStatus object) {
+			return createClassStatusAdapter();
+		}
+		@Override
+		public Adapter caseElementStatus(ElementStatus object) {
+			return createElementStatusAdapter();
+		}
+		@Override
+		public Adapter caseEvaluationElement(EvaluationElement object) {
+			return createEvaluationElementAdapter();
+		}
+		@Override
+		public Adapter caseMappingStatus(MappingStatus object) {
+			return createMappingStatusAdapter();
+		}
+		@Override
+		public Adapter casePropertyStatus(PropertyStatus object) {
+			return createPropertyStatusAdapter();
+		}
+		@Override
+		public Adapter caseTransformationStatus(TransformationStatus object) {
+			return createTransformationStatusAdapter();
+		}
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/emf-gen/org/eclipse/qvtd/pivot/qvtimperative/model/QVTimperativeLibrary.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/emf-gen/org/eclipse/qvtd/pivot/qvtimperative/model/QVTimperativeLibrary.java
index 4faf4f6..c221ba1 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/emf-gen/org/eclipse/qvtd/pivot/qvtimperative/model/QVTimperativeLibrary.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/emf-gen/org/eclipse/qvtd/pivot/qvtimperative/model/QVTimperativeLibrary.java
@@ -18,29 +18,19 @@
 package	org.eclipse.qvtd.pivot.qvtimperative.model;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.BasicEObjectImpl;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.ocl.pivot.*;
 import org.eclipse.ocl.pivot.Class;
 import org.eclipse.ocl.pivot.Package;
-import org.eclipse.ocl.pivot.ids.IdManager;
-import org.eclipse.ocl.pivot.ids.PackageId;
 import org.eclipse.ocl.pivot.internal.library.StandardLibraryContribution;
 import org.eclipse.ocl.pivot.internal.resource.ASResourceImpl;
 import org.eclipse.ocl.pivot.internal.resource.OCLASResourceFactory;
@@ -48,10 +38,7 @@
 import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
 import org.eclipse.ocl.pivot.model.OCLmetamodel;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
-import org.eclipse.ocl.pivot.utilities.MetamodelManager;
 import org.eclipse.ocl.pivot.utilities.PivotConstants;
-import org.eclipse.ocl.pivot.utilities.PivotUtil;
-
 import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibPackage;
 import org.eclipse.qvtd.runtime.qvtruntimelibrary.QVTruntimeLibraryPackage;
 
