Merge "Created a separate project for the artifact metamodel" into develop
diff --git a/org.eclipse.capra.core/src/org/eclipse/capra/core/helpers/ArtifactHelper.java b/org.eclipse.capra.core/src/org/eclipse/capra/core/helpers/ArtifactHelper.java
index d09a696..e0c31ec 100644
--- a/org.eclipse.capra.core/src/org/eclipse/capra/core/helpers/ArtifactHelper.java
+++ b/org.eclipse.capra.core/src/org/eclipse/capra/core/helpers/ArtifactHelper.java
@@ -14,12 +14,15 @@
 	private EObject artifactModel;
 	// Switch to Optional here to express potential absence in the type
 	private static Optional<PriorityHandler> priorityHandler = ExtensionPointHelper.getPriorityHandler();
-	
-	// This is a tricky type... It is not really necessary here, but let's take it as a generics tutorial example! 
-	// 
-	// I used it during development because this type can contain collections both of type IArtifactHandler<?> 
-	// AND of IArtifactHandler<Object>. The simpler type Collection<IArtifactHandler<?>> can only hold 
-	// IArtifactHandler<?>. 
+
+	// This is a tricky type... It is not really necessary here, but let's take
+	// it as a generics tutorial example!
+	//
+	// I used it during development because this type can contain collections
+	// both of type IArtifactHandler<?>
+	// AND of IArtifactHandler<Object>. The simpler type
+	// Collection<IArtifactHandler<?>> can only hold
+	// IArtifactHandler<?>.
 	private static Collection<? extends IArtifactHandler<?>> handlers = ExtensionPointHelper.getArtifactHandlers();
 
 	/**
@@ -37,13 +40,10 @@
 	 */
 	@SuppressWarnings("unchecked")
 	public List<EObject> createWrappers(List<?> artifacts) {
-		return (List<EObject>) (Object)artifacts.stream()
-			.map(vagueArtifact -> 
-				getHandler(vagueArtifact).map(h -> h.withCastedHandlerUnchecked(vagueArtifact, 
-					(handler, artifact) -> handler.createWrapper(artifact, artifactModel))))
-			.filter(Optional::isPresent)
-			.map(Optional::get)
-			.collect(toList());
+		return (List<EObject>) (Object) artifacts.stream()
+				.map(vagueArtifact -> getHandler(vagueArtifact).map(h -> h.withCastedHandlerUnchecked(vagueArtifact,
+						(handler, artifact) -> handler.createWrapper(artifact, artifactModel))))
+				.filter(Optional::isPresent).map(Optional::get).collect(toList());
 
 	}
 
@@ -54,27 +54,26 @@
 	 * @return wrapper of null if no handler exists
 	 */
 	public EObject createWrapper(Object vagueArtifact) {
-		Optional<EObject> wrapped = getHandler(vagueArtifact).map(
-			vagueHandler -> vagueHandler.withCastedHandlerUnchecked(vagueArtifact, 
-				(handler, artifact) -> handler.createWrapper(artifact, artifactModel)));
-		
+		Optional<EObject> wrapped = getHandler(vagueArtifact)
+				.map(vagueHandler -> vagueHandler.withCastedHandlerUnchecked(vagueArtifact,
+						(handler, artifact) -> handler.createWrapper(artifact, artifactModel)));
+
 		return wrapped.orElse(null);
 	}
-	
+
 	// Returns handler for same type as the argument
 	public <T> Optional<IArtifactHandler<?>> getHandler(Object artifact) {
 
-		List<IArtifactHandler<?>> availableHandlers = handlers.stream()
-			.filter(h -> h.canHandleArtifact(artifact))
-			.collect(toList());
-		
+		List<IArtifactHandler<?>> availableHandlers = handlers.stream().filter(h -> h.canHandleArtifact(artifact))
+				.collect(toList());
+
 		if (availableHandlers.isEmpty()) {
 			return Optional.empty();
 		} else if (availableHandlers.size() == 1) {
 			return Optional.of(availableHandlers.get(0));
 		} else {
-			return priorityHandler
-				.map(h -> h.getSelectedHandler(availableHandlers, artifact));
+			return priorityHandler.map(h -> h.getSelectedHandler(availableHandlers, artifact));
 		}
 	}
+
 }
diff --git a/org.eclipse.capra.generic.artifactmodel/.classpath b/org.eclipse.capra.generic.artifactmodel/.classpath
new file mode 100644
index 0000000..8dd013a
--- /dev/null
+++ b/org.eclipse.capra.generic.artifactmodel/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.capra.generic.artifactmodel/.project b/org.eclipse.capra.generic.artifactmodel/.project
new file mode 100644
index 0000000..bae117a
--- /dev/null
+++ b/org.eclipse.capra.generic.artifactmodel/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.capra.generic.artifactmodel</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.capra.generic.artifactmodel/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.capra.generic.artifactmodel/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..3a21537
--- /dev/null
+++ b/org.eclipse.capra.generic.artifactmodel/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/org.eclipse.capra.generic.artifactmodel/META-INF/MANIFEST.MF b/org.eclipse.capra.generic.artifactmodel/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..975b443
--- /dev/null
+++ b/org.eclipse.capra.generic.artifactmodel/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.capra.generic.artifactmodel;singleton:=true
+Bundle-Version: 0.7.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.capra.generic.artifactmodel,
+ org.eclipse.capra.generic.artifactmodel.impl,
+ org.eclipse.capra.generic.artifactmodel.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.emf.ecore.xcore.lib,
+ org.eclipse.capra.core
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.capra.generic.artifactmodel/build.properties b/org.eclipse.capra.generic.artifactmodel/build.properties
new file mode 100644
index 0000000..ff972dc
--- /dev/null
+++ b/org.eclipse.capra.generic.artifactmodel/build.properties
@@ -0,0 +1,19 @@
+###############################################################################
+# Copyright (c) 2016 Chalmers | University of Gothenburg, rt-labs and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#  
+#   Contributors:
+#      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
+###############################################################################
+#
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.xml
+jars.compile.order = .
+source.. = src-gen/,\
+		   src/
+output.. = bin/
\ No newline at end of file
diff --git a/org.eclipse.capra.generic.tracemodels/model/artifact.xcore b/org.eclipse.capra.generic.artifactmodel/model/artifact.xcore
similarity index 73%
rename from org.eclipse.capra.generic.tracemodels/model/artifact.xcore
rename to org.eclipse.capra.generic.artifactmodel/model/artifact.xcore
index 8350e7b..8858a2d 100644
--- a/org.eclipse.capra.generic.tracemodels/model/artifact.xcore
+++ b/org.eclipse.capra.generic.artifactmodel/model/artifact.xcore
@@ -1,4 +1,4 @@
-package org.eclipse.capra.GenericArtifactMetaModel
+package  org.eclipse.capra.generic.artifactmodel
 
 class ArtifactWrapperContainer {
 	contains ArtifactWrapper [0..*] artifacts 
@@ -9,5 +9,4 @@
 	String uri
 	String name
 	String ArtifactHandler
-}    
-   
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/org.eclipse.capra.generic.artifactmodel/plugin.xml b/org.eclipse.capra.generic.artifactmodel/plugin.xml
new file mode 100644
index 0000000..50214d9
--- /dev/null
+++ b/org.eclipse.capra.generic.artifactmodel/plugin.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension
+         point="org.eclipse.capra.configuration.artifactMetaModel">
+      <ArtifactMetaModelAdapter
+            class="org.eclipse.capra.generic.artifactmodel.GenericArtifactMetaModelAdapter">
+      </ArtifactMetaModelAdapter>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated artifact -->
+      <package
+            uri="org.eclipse.capra.generic.artifactmodel"
+            class="org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage"
+            genModel="model/artifact.xcore"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.capra.generic.artifactmodel/pom.xml b/org.eclipse.capra.generic.artifactmodel/pom.xml
new file mode 100644
index 0000000..4860501
--- /dev/null
+++ b/org.eclipse.capra.generic.artifactmodel/pom.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2016 Chalmers | University of Gothenburg, rt-labs and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+     
+      Contributors:
+         Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<relativePath>../pom.xml</relativePath>
+		<groupId>org.eclipse.capra</groupId>
+		<artifactId>parent</artifactId>
+		<version>0.7.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.capra.generic.artifactmodel</artifactId>
+	<packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapper.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactWrapper.java
similarity index 64%
rename from org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapper.java
rename to org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactWrapper.java
index c89fcc0..4f21c3d 100644
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapper.java
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactWrapper.java
@@ -1,6 +1,6 @@
 /**
  */
-package org.eclipse.capra.GenericArtifactMetaModel;
+package org.eclipse.capra.generic.artifactmodel;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -13,13 +13,13 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getPath <em>Path</em>}</li>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getUri <em>Uri</em>}</li>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getArtifactHandler <em>Artifact Handler</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getPath <em>Path</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getUri <em>Uri</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getArtifactHandler <em>Artifact Handler</em>}</li>
  * </ul>
  *
- * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapper()
+ * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage#getArtifactWrapper()
  * @model
  * @generated
  */
@@ -34,14 +34,14 @@
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Path</em>' attribute.
 	 * @see #setPath(String)
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapper_Path()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage#getArtifactWrapper_Path()
 	 * @model unique="false"
 	 * @generated
 	 */
 	String getPath();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getPath <em>Path</em>}' attribute.
+	 * Sets the value of the '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getPath <em>Path</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Path</em>' attribute.
@@ -60,14 +60,14 @@
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Uri</em>' attribute.
 	 * @see #setUri(String)
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapper_Uri()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage#getArtifactWrapper_Uri()
 	 * @model unique="false"
 	 * @generated
 	 */
 	String getUri();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getUri <em>Uri</em>}' attribute.
+	 * Sets the value of the '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getUri <em>Uri</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Uri</em>' attribute.
@@ -86,14 +86,14 @@
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Name</em>' attribute.
 	 * @see #setName(String)
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapper_Name()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage#getArtifactWrapper_Name()
 	 * @model unique="false"
 	 * @generated
 	 */
 	String getName();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getName <em>Name</em>}' attribute.
+	 * Sets the value of the '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getName <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Name</em>' attribute.
@@ -112,14 +112,14 @@
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Artifact Handler</em>' attribute.
 	 * @see #setArtifactHandler(String)
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapper_ArtifactHandler()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage#getArtifactWrapper_ArtifactHandler()
 	 * @model unique="false"
 	 * @generated
 	 */
 	String getArtifactHandler();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getArtifactHandler <em>Artifact Handler</em>}' attribute.
+	 * Sets the value of the '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getArtifactHandler <em>Artifact Handler</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Artifact Handler</em>' attribute.
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapperContainer.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactWrapperContainer.java
similarity index 63%
rename from org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapperContainer.java
rename to org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactWrapperContainer.java
index cbc37fa..085506d 100644
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapperContainer.java
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactWrapperContainer.java
@@ -1,6 +1,6 @@
 /**
  */
-package org.eclipse.capra.GenericArtifactMetaModel;
+package org.eclipse.capra.generic.artifactmodel;
 
 import org.eclipse.emf.common.util.EList;
 
@@ -15,17 +15,17 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer#getArtifacts <em>Artifacts</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer#getArtifacts <em>Artifacts</em>}</li>
  * </ul>
  *
- * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapperContainer()
+ * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage#getArtifactWrapperContainer()
  * @model
  * @generated
  */
 public interface ArtifactWrapperContainer extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Artifacts</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper}.
+	 * The list contents are of type {@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Artifacts</em>' containment reference list isn't clear,
@@ -33,7 +33,7 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Artifacts</em>' containment reference list.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapperContainer_Artifacts()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage#getArtifactWrapperContainer_Artifacts()
 	 * @model containment="true"
 	 * @generated
 	 */
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelFactory.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactmodelFactory.java
similarity index 70%
rename from org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelFactory.java
rename to org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactmodelFactory.java
index 59b5ae5..354a131 100644
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelFactory.java
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactmodelFactory.java
@@ -1,6 +1,6 @@
 /**
  */
-package org.eclipse.capra.GenericArtifactMetaModel;
+package org.eclipse.capra.generic.artifactmodel;
 
 import org.eclipse.emf.ecore.EFactory;
 
@@ -9,17 +9,17 @@
  * The <b>Factory</b> for the model.
  * It provides a create method for each non-abstract class of the model.
  * <!-- end-user-doc -->
- * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage
+ * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage
  * @generated
  */
-public interface GenericArtifactMetaModelFactory extends EFactory {
+public interface ArtifactmodelFactory extends EFactory {
 	/**
 	 * The singleton instance of the factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	GenericArtifactMetaModelFactory eINSTANCE = org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelFactoryImpl.init();
+	ArtifactmodelFactory eINSTANCE = org.eclipse.capra.generic.artifactmodel.impl.ArtifactmodelFactoryImpl.init();
 
 	/**
 	 * Returns a new object of class '<em>Artifact Wrapper Container</em>'.
@@ -46,6 +46,6 @@
 	 * @return the package supported by this factory.
 	 * @generated
 	 */
-	GenericArtifactMetaModelPackage getGenericArtifactMetaModelPackage();
+	ArtifactmodelPackage getArtifactmodelPackage();
 
-} //GenericArtifactMetaModelFactory
+} //ArtifactmodelFactory
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelPackage.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactmodelPackage.java
similarity index 69%
rename from org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelPackage.java
rename to org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactmodelPackage.java
index 6686f86..55b7273 100644
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelPackage.java
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/ArtifactmodelPackage.java
@@ -1,6 +1,6 @@
 /**
  */
-package org.eclipse.capra.GenericArtifactMetaModel;
+package org.eclipse.capra.generic.artifactmodel;
 
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
@@ -19,19 +19,19 @@
  *   <li>and each data type</li>
  * </ul>
  * <!-- end-user-doc -->
- * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelFactory
+ * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelFactory
  * @model kind="package"
- *        annotation="http://www.eclipse.org/emf/2002/GenModel basePackage='org.eclipse.capra'"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel basePackage='org.eclipse.capra.generic'"
  * @generated
  */
-public interface GenericArtifactMetaModelPackage extends EPackage {
+public interface ArtifactmodelPackage extends EPackage {
 	/**
 	 * The package name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	String eNAME = "GenericArtifactMetaModel";
+	String eNAME = "artifactmodel";
 
 	/**
 	 * The package namespace URI.
@@ -39,7 +39,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	String eNS_URI = "org.eclipse.capra.GenericArtifactMetaModel";
+	String eNS_URI = "org.eclipse.capra.generic.artifactmodel";
 
 	/**
 	 * The package namespace name.
@@ -47,7 +47,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	String eNS_PREFIX = "GenericArtifactMetaModel";
+	String eNS_PREFIX = "artifactmodel";
 
 	/**
 	 * The singleton instance of the package.
@@ -55,14 +55,14 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	GenericArtifactMetaModelPackage eINSTANCE = org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl.init();
+	ArtifactmodelPackage eINSTANCE = org.eclipse.capra.generic.artifactmodel.impl.ArtifactmodelPackageImpl.init();
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl <em>Artifact Wrapper Container</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperContainerImpl <em>Artifact Wrapper Container</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl#getArtifactWrapperContainer()
+	 * @see org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperContainerImpl
+	 * @see org.eclipse.capra.generic.artifactmodel.impl.ArtifactmodelPackageImpl#getArtifactWrapperContainer()
 	 * @generated
 	 */
 	int ARTIFACT_WRAPPER_CONTAINER = 0;
@@ -95,11 +95,11 @@
 	int ARTIFACT_WRAPPER_CONTAINER_OPERATION_COUNT = 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl <em>Artifact Wrapper</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperImpl <em>Artifact Wrapper</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl#getArtifactWrapper()
+	 * @see org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperImpl
+	 * @see org.eclipse.capra.generic.artifactmodel.impl.ArtifactmodelPackageImpl#getArtifactWrapper()
 	 * @generated
 	 */
 	int ARTIFACT_WRAPPER = 1;
@@ -160,75 +160,75 @@
 
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer <em>Artifact Wrapper Container</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer <em>Artifact Wrapper Container</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for class '<em>Artifact Wrapper Container</em>'.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer
 	 * @generated
 	 */
 	EClass getArtifactWrapperContainer();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer#getArtifacts <em>Artifacts</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer#getArtifacts <em>Artifacts</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the containment reference list '<em>Artifacts</em>'.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer#getArtifacts()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer#getArtifacts()
 	 * @see #getArtifactWrapperContainer()
 	 * @generated
 	 */
 	EReference getArtifactWrapperContainer_Artifacts();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper <em>Artifact Wrapper</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper <em>Artifact Wrapper</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for class '<em>Artifact Wrapper</em>'.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactWrapper
 	 * @generated
 	 */
 	EClass getArtifactWrapper();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getPath <em>Path</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getPath <em>Path</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the attribute '<em>Path</em>'.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getPath()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getPath()
 	 * @see #getArtifactWrapper()
 	 * @generated
 	 */
 	EAttribute getArtifactWrapper_Path();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getUri <em>Uri</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getUri <em>Uri</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the attribute '<em>Uri</em>'.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getUri()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getUri()
 	 * @see #getArtifactWrapper()
 	 * @generated
 	 */
 	EAttribute getArtifactWrapper_Uri();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getName <em>Name</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getName <em>Name</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getName()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getName()
 	 * @see #getArtifactWrapper()
 	 * @generated
 	 */
 	EAttribute getArtifactWrapper_Name();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getArtifactHandler <em>Artifact Handler</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getArtifactHandler <em>Artifact Handler</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the attribute '<em>Artifact Handler</em>'.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getArtifactHandler()
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactWrapper#getArtifactHandler()
 	 * @see #getArtifactWrapper()
 	 * @generated
 	 */
@@ -241,7 +241,7 @@
 	 * @return the factory that creates the instances of the model.
 	 * @generated
 	 */
-	GenericArtifactMetaModelFactory getGenericArtifactMetaModelFactory();
+	ArtifactmodelFactory getArtifactmodelFactory();
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -258,11 +258,11 @@
 	 */
 	interface Literals {
 		/**
-		 * The meta object literal for the '{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl <em>Artifact Wrapper Container</em>}' class.
+		 * The meta object literal for the '{@link org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperContainerImpl <em>Artifact Wrapper Container</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl
-		 * @see org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl#getArtifactWrapperContainer()
+		 * @see org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperContainerImpl
+		 * @see org.eclipse.capra.generic.artifactmodel.impl.ArtifactmodelPackageImpl#getArtifactWrapperContainer()
 		 * @generated
 		 */
 		EClass ARTIFACT_WRAPPER_CONTAINER = eINSTANCE.getArtifactWrapperContainer();
@@ -276,11 +276,11 @@
 		EReference ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS = eINSTANCE.getArtifactWrapperContainer_Artifacts();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl <em>Artifact Wrapper</em>}' class.
+		 * The meta object literal for the '{@link org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperImpl <em>Artifact Wrapper</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl
-		 * @see org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl#getArtifactWrapper()
+		 * @see org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperImpl
+		 * @see org.eclipse.capra.generic.artifactmodel.impl.ArtifactmodelPackageImpl#getArtifactWrapper()
 		 * @generated
 		 */
 		EClass ARTIFACT_WRAPPER = eINSTANCE.getArtifactWrapper();
@@ -319,4 +319,4 @@
 
 	}
 
-} //GenericArtifactMetaModelPackage
+} //ArtifactmodelPackage
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperContainerImpl.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactWrapperContainerImpl.java
similarity index 75%
rename from org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperContainerImpl.java
rename to org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactWrapperContainerImpl.java
index ed19b87..fec0e9f 100644
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperContainerImpl.java
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactWrapperContainerImpl.java
@@ -1,12 +1,12 @@
 /**
  */
-package org.eclipse.capra.GenericArtifactMetaModel.impl;
+package org.eclipse.capra.generic.artifactmodel.impl;
 
 import java.util.Collection;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
-import org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer;
+import org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage;
 
 import org.eclipse.emf.common.notify.NotificationChain;
 
@@ -28,7 +28,7 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl#getArtifacts <em>Artifacts</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperContainerImpl#getArtifacts <em>Artifacts</em>}</li>
  * </ul>
  *
  * @generated
@@ -60,7 +60,7 @@
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return GenericArtifactMetaModelPackage.Literals.ARTIFACT_WRAPPER_CONTAINER;
+		return ArtifactmodelPackage.Literals.ARTIFACT_WRAPPER_CONTAINER;
 	}
 
 	/**
@@ -70,7 +70,7 @@
 	 */
 	public EList<ArtifactWrapper> getArtifacts() {
 		if (artifacts == null) {
-			artifacts = new EObjectContainmentEList<ArtifactWrapper>(ArtifactWrapper.class, this, GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS);
+			artifacts = new EObjectContainmentEList<ArtifactWrapper>(ArtifactWrapper.class, this, ArtifactmodelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS);
 		}
 		return artifacts;
 	}
@@ -83,7 +83,7 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
 				return ((InternalEList<?>)getArtifacts()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -97,7 +97,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
 				return getArtifacts();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -112,7 +112,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
 				getArtifacts().clear();
 				getArtifacts().addAll((Collection<? extends ArtifactWrapper>)newValue);
 				return;
@@ -128,7 +128,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
 				getArtifacts().clear();
 				return;
 		}
@@ -143,7 +143,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
 				return artifacts != null && !artifacts.isEmpty();
 		}
 		return super.eIsSet(featureID);
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperImpl.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactWrapperImpl.java
similarity index 72%
rename from org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperImpl.java
rename to org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactWrapperImpl.java
index 0e79aa4..63429ca 100644
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperImpl.java
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactWrapperImpl.java
@@ -1,9 +1,9 @@
 /**
  */
-package org.eclipse.capra.GenericArtifactMetaModel.impl;
+package org.eclipse.capra.generic.artifactmodel.impl;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage;
 
 import org.eclipse.emf.common.notify.Notification;
 
@@ -20,10 +20,10 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl#getPath <em>Path</em>}</li>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl#getUri <em>Uri</em>}</li>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl#getArtifactHandler <em>Artifact Handler</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperImpl#getPath <em>Path</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperImpl#getUri <em>Uri</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.capra.generic.artifactmodel.impl.ArtifactWrapperImpl#getArtifactHandler <em>Artifact Handler</em>}</li>
  * </ul>
  *
  * @generated
@@ -125,7 +125,7 @@
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return GenericArtifactMetaModelPackage.Literals.ARTIFACT_WRAPPER;
+		return ArtifactmodelPackage.Literals.ARTIFACT_WRAPPER;
 	}
 
 	/**
@@ -146,7 +146,7 @@
 		String oldPath = path;
 		path = newPath;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__PATH, oldPath, path));
+			eNotify(new ENotificationImpl(this, Notification.SET, ArtifactmodelPackage.ARTIFACT_WRAPPER__PATH, oldPath, path));
 	}
 
 	/**
@@ -167,7 +167,7 @@
 		String oldUri = uri;
 		uri = newUri;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI, oldUri, uri));
+			eNotify(new ENotificationImpl(this, Notification.SET, ArtifactmodelPackage.ARTIFACT_WRAPPER__URI, oldUri, uri));
 	}
 
 	/**
@@ -188,7 +188,7 @@
 		String oldName = name;
 		name = newName;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME, oldName, name));
+			eNotify(new ENotificationImpl(this, Notification.SET, ArtifactmodelPackage.ARTIFACT_WRAPPER__NAME, oldName, name));
 	}
 
 	/**
@@ -209,7 +209,7 @@
 		String oldArtifactHandler = artifactHandler;
 		artifactHandler = newArtifactHandler;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER, oldArtifactHandler, artifactHandler));
+			eNotify(new ENotificationImpl(this, Notification.SET, ArtifactmodelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER, oldArtifactHandler, artifactHandler));
 	}
 
 	/**
@@ -220,13 +220,13 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__PATH:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__PATH:
 				return getPath();
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__URI:
 				return getUri();
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__NAME:
 				return getName();
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
 				return getArtifactHandler();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -240,16 +240,16 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__PATH:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__PATH:
 				setPath((String)newValue);
 				return;
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__URI:
 				setUri((String)newValue);
 				return;
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__NAME:
 				setName((String)newValue);
 				return;
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
 				setArtifactHandler((String)newValue);
 				return;
 		}
@@ -264,16 +264,16 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__PATH:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__PATH:
 				setPath(PATH_EDEFAULT);
 				return;
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__URI:
 				setUri(URI_EDEFAULT);
 				return;
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__NAME:
 				setName(NAME_EDEFAULT);
 				return;
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
 				setArtifactHandler(ARTIFACT_HANDLER_EDEFAULT);
 				return;
 		}
@@ -288,13 +288,13 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__PATH:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__PATH:
 				return PATH_EDEFAULT == null ? path != null : !PATH_EDEFAULT.equals(path);
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__URI:
 				return URI_EDEFAULT == null ? uri != null : !URI_EDEFAULT.equals(uri);
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
 				return ARTIFACT_HANDLER_EDEFAULT == null ? artifactHandler != null : !ARTIFACT_HANDLER_EDEFAULT.equals(artifactHandler);
 		}
 		return super.eIsSet(featureID);
diff --git a/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactmodelFactoryImpl.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactmodelFactoryImpl.java
new file mode 100644
index 0000000..2c6318b
--- /dev/null
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactmodelFactoryImpl.java
@@ -0,0 +1,106 @@
+/**
+ */
+package org.eclipse.capra.generic.artifactmodel.impl;
+
+import org.eclipse.capra.generic.artifactmodel.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArtifactmodelFactoryImpl extends EFactoryImpl implements ArtifactmodelFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ArtifactmodelFactory init() {
+		try {
+			ArtifactmodelFactory theArtifactmodelFactory = (ArtifactmodelFactory)EPackage.Registry.INSTANCE.getEFactory(ArtifactmodelPackage.eNS_URI);
+			if (theArtifactmodelFactory != null) {
+				return theArtifactmodelFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new ArtifactmodelFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ArtifactmodelFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER_CONTAINER: return createArtifactWrapperContainer();
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER: return createArtifactWrapper();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ArtifactWrapperContainer createArtifactWrapperContainer() {
+		ArtifactWrapperContainerImpl artifactWrapperContainer = new ArtifactWrapperContainerImpl();
+		return artifactWrapperContainer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ArtifactWrapper createArtifactWrapper() {
+		ArtifactWrapperImpl artifactWrapper = new ArtifactWrapperImpl();
+		return artifactWrapper;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ArtifactmodelPackage getArtifactmodelPackage() {
+		return (ArtifactmodelPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static ArtifactmodelPackage getPackage() {
+		return ArtifactmodelPackage.eINSTANCE;
+	}
+
+} //ArtifactmodelFactoryImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelPackageImpl.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactmodelPackageImpl.java
similarity index 78%
rename from org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelPackageImpl.java
rename to org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactmodelPackageImpl.java
index 7a68b77..a58de9d 100644
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelPackageImpl.java
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/impl/ArtifactmodelPackageImpl.java
@@ -1,11 +1,11 @@
 /**
  */
-package org.eclipse.capra.GenericArtifactMetaModel.impl;
+package org.eclipse.capra.generic.artifactmodel.impl;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
-import org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelFactory;
-import org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer;
+import org.eclipse.capra.generic.artifactmodel.ArtifactmodelFactory;
+import org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage;
 
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
@@ -21,7 +21,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class GenericArtifactMetaModelPackageImpl extends EPackageImpl implements GenericArtifactMetaModelPackage {
+public class ArtifactmodelPackageImpl extends EPackageImpl implements ArtifactmodelPackage {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -47,12 +47,12 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#eNS_URI
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage#eNS_URI
 	 * @see #init()
 	 * @generated
 	 */
-	private GenericArtifactMetaModelPackageImpl() {
-		super(eNS_URI, GenericArtifactMetaModelFactory.eINSTANCE);
+	private ArtifactmodelPackageImpl() {
+		super(eNS_URI, ArtifactmodelFactory.eINSTANCE);
 	}
 
 	/**
@@ -65,7 +65,7 @@
 	/**
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 * 
-	 * <p>This method is used to initialize {@link GenericArtifactMetaModelPackage#eINSTANCE} when that field is accessed.
+	 * <p>This method is used to initialize {@link ArtifactmodelPackage#eINSTANCE} when that field is accessed.
 	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -74,11 +74,11 @@
 	 * @see #initializePackageContents()
 	 * @generated
 	 */
-	public static GenericArtifactMetaModelPackage init() {
-		if (isInited) return (GenericArtifactMetaModelPackage)EPackage.Registry.INSTANCE.getEPackage(GenericArtifactMetaModelPackage.eNS_URI);
+	public static ArtifactmodelPackage init() {
+		if (isInited) return (ArtifactmodelPackage)EPackage.Registry.INSTANCE.getEPackage(ArtifactmodelPackage.eNS_URI);
 
 		// Obtain or create and register package
-		GenericArtifactMetaModelPackageImpl theGenericArtifactMetaModelPackage = (GenericArtifactMetaModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof GenericArtifactMetaModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new GenericArtifactMetaModelPackageImpl());
+		ArtifactmodelPackageImpl theArtifactmodelPackage = (ArtifactmodelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ArtifactmodelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ArtifactmodelPackageImpl());
 
 		isInited = true;
 
@@ -86,18 +86,18 @@
 		EcorePackage.eINSTANCE.eClass();
 
 		// Create package meta-data objects
-		theGenericArtifactMetaModelPackage.createPackageContents();
+		theArtifactmodelPackage.createPackageContents();
 
 		// Initialize created meta-data
-		theGenericArtifactMetaModelPackage.initializePackageContents();
+		theArtifactmodelPackage.initializePackageContents();
 
 		// Mark meta-data to indicate it can't be changed
-		theGenericArtifactMetaModelPackage.freeze();
+		theArtifactmodelPackage.freeze();
 
   
 		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(GenericArtifactMetaModelPackage.eNS_URI, theGenericArtifactMetaModelPackage);
-		return theGenericArtifactMetaModelPackage;
+		EPackage.Registry.INSTANCE.put(ArtifactmodelPackage.eNS_URI, theArtifactmodelPackage);
+		return theArtifactmodelPackage;
 	}
 
 	/**
@@ -168,8 +168,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public GenericArtifactMetaModelFactory getGenericArtifactMetaModelFactory() {
-		return (GenericArtifactMetaModelFactory)getEFactoryInstance();
+	public ArtifactmodelFactory getArtifactmodelFactory() {
+		return (ArtifactmodelFactory)getEFactoryInstance();
 	}
 
 	/**
@@ -247,4 +247,4 @@
 		createResource(eNS_URI);
 	}
 
-} //GenericArtifactMetaModelPackageImpl
+} //ArtifactmodelPackageImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelAdapterFactory.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/util/ArtifactmodelAdapterFactory.java
similarity index 77%
rename from org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelAdapterFactory.java
rename to org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/util/ArtifactmodelAdapterFactory.java
index d867048..0d1e50b 100644
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelAdapterFactory.java
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/util/ArtifactmodelAdapterFactory.java
@@ -1,8 +1,8 @@
 /**
  */
-package org.eclipse.capra.GenericArtifactMetaModel.util;
+package org.eclipse.capra.generic.artifactmodel.util;
 
-import org.eclipse.capra.GenericArtifactMetaModel.*;
+import org.eclipse.capra.generic.artifactmodel.*;
 
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
@@ -16,17 +16,17 @@
  * The <b>Adapter Factory</b> for the model.
  * It provides an adapter <code>createXXX</code> method for each class of the model.
  * <!-- end-user-doc -->
- * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage
+ * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage
  * @generated
  */
-public class GenericArtifactMetaModelAdapterFactory extends AdapterFactoryImpl {
+public class ArtifactmodelAdapterFactory extends AdapterFactoryImpl {
 	/**
 	 * The cached model package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected static GenericArtifactMetaModelPackage modelPackage;
+	protected static ArtifactmodelPackage modelPackage;
 
 	/**
 	 * Creates an instance of the adapter factory.
@@ -34,9 +34,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public GenericArtifactMetaModelAdapterFactory() {
+	public ArtifactmodelAdapterFactory() {
 		if (modelPackage == null) {
-			modelPackage = GenericArtifactMetaModelPackage.eINSTANCE;
+			modelPackage = ArtifactmodelPackage.eINSTANCE;
 		}
 	}
 
@@ -65,8 +65,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected GenericArtifactMetaModelSwitch<Adapter> modelSwitch =
-		new GenericArtifactMetaModelSwitch<Adapter>() {
+	protected ArtifactmodelSwitch<Adapter> modelSwitch =
+		new ArtifactmodelSwitch<Adapter>() {
 			@Override
 			public Adapter caseArtifactWrapperContainer(ArtifactWrapperContainer object) {
 				return createArtifactWrapperContainerAdapter();
@@ -96,13 +96,13 @@
 
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer <em>Artifact Wrapper Container</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer <em>Artifact Wrapper Container</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer
 	 * @generated
 	 */
 	public Adapter createArtifactWrapperContainerAdapter() {
@@ -110,13 +110,13 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper <em>Artifact Wrapper</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.capra.generic.artifactmodel.ArtifactWrapper <em>Artifact Wrapper</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper
+	 * @see org.eclipse.capra.generic.artifactmodel.ArtifactWrapper
 	 * @generated
 	 */
 	public Adapter createArtifactWrapperAdapter() {
@@ -135,4 +135,4 @@
 		return null;
 	}
 
-} //GenericArtifactMetaModelAdapterFactory
+} //ArtifactmodelAdapterFactory
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelSwitch.java b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/util/ArtifactmodelSwitch.java
similarity index 85%
rename from org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelSwitch.java
rename to org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/util/ArtifactmodelSwitch.java
index 46279cb..2aeff30 100644
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelSwitch.java
+++ b/org.eclipse.capra.generic.artifactmodel/src-gen/org/eclipse/capra/generic/artifactmodel/util/ArtifactmodelSwitch.java
@@ -1,8 +1,8 @@
 /**
  */
-package org.eclipse.capra.GenericArtifactMetaModel.util;
+package org.eclipse.capra.generic.artifactmodel.util;
 
-import org.eclipse.capra.GenericArtifactMetaModel.*;
+import org.eclipse.capra.generic.artifactmodel.*;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
@@ -19,17 +19,17 @@
  * until a non-null result is returned,
  * which is the result of the switch.
  * <!-- end-user-doc -->
- * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage
+ * @see org.eclipse.capra.generic.artifactmodel.ArtifactmodelPackage
  * @generated
  */
-public class GenericArtifactMetaModelSwitch<T> extends Switch<T> {
+public class ArtifactmodelSwitch<T> extends Switch<T> {
 	/**
 	 * The cached model package
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected static GenericArtifactMetaModelPackage modelPackage;
+	protected static ArtifactmodelPackage modelPackage;
 
 	/**
 	 * Creates an instance of the switch.
@@ -37,9 +37,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public GenericArtifactMetaModelSwitch() {
+	public ArtifactmodelSwitch() {
 		if (modelPackage == null) {
-			modelPackage = GenericArtifactMetaModelPackage.eINSTANCE;
+			modelPackage = ArtifactmodelPackage.eINSTANCE;
 		}
 	}
 
@@ -66,13 +66,13 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER: {
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER_CONTAINER: {
 				ArtifactWrapperContainer artifactWrapperContainer = (ArtifactWrapperContainer)theEObject;
 				T result = caseArtifactWrapperContainer(artifactWrapperContainer);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER: {
+			case ArtifactmodelPackage.ARTIFACT_WRAPPER: {
 				ArtifactWrapper artifactWrapper = (ArtifactWrapper)theEObject;
 				T result = caseArtifactWrapper(artifactWrapper);
 				if (result == null) result = defaultCase(theEObject);
@@ -128,4 +128,4 @@
 		return null;
 	}
 
-} //GenericArtifactMetaModelSwitch
+} //ArtifactmodelSwitch
diff --git a/org.eclipse.capra.generic.tracemodels/src/org/eclipse/capra/generic/tracemodels/GenericArtifactMetaModelAdapter.java b/org.eclipse.capra.generic.artifactmodel/src/org/eclipse/capra/generic/artifactmodel/GenericArtifactMetaModelAdapter.java
similarity index 86%
rename from org.eclipse.capra.generic.tracemodels/src/org/eclipse/capra/generic/tracemodels/GenericArtifactMetaModelAdapter.java
rename to org.eclipse.capra.generic.artifactmodel/src/org/eclipse/capra/generic/artifactmodel/GenericArtifactMetaModelAdapter.java
index 27bc9e6..d19b5ae 100644
--- a/org.eclipse.capra.generic.tracemodels/src/org/eclipse/capra/generic/tracemodels/GenericArtifactMetaModelAdapter.java
+++ b/org.eclipse.capra.generic.artifactmodel/src/org/eclipse/capra/generic/artifactmodel/GenericArtifactMetaModelAdapter.java
@@ -1,18 +1,15 @@
+package org.eclipse.capra.generic.artifactmodel;
 /*******************************************************************************
  * Copyright (c) 2016 Chalmers | University of Gothenburg, rt-labs and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  *   Contributors:
  *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
-package org.eclipse.capra.generic.tracemodels;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
-import org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelFactory;
 import org.eclipse.capra.core.adapters.AbstractArtifactMetaModelAdapter;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -29,9 +26,10 @@
 
 	@Override
 	public EObject createModel() {
-		return GenericArtifactMetaModelFactory.eINSTANCE.createArtifactWrapperContainer();
+		return ArtifactmodelFactory.eINSTANCE.createArtifactWrapperContainer();
 	}
 
+	@Override
 	public EObject getArtifact(EObject artifactModel, String artifactHandler, String artifactUri) {
 		ArtifactWrapperContainer container = getContainer(artifactModel);
 		for (ArtifactWrapper artifact : container.getArtifacts()) {
@@ -49,7 +47,7 @@
 		if (existingWrapper != null)
 			return existingWrapper;
 
-		ArtifactWrapper wrapper = GenericArtifactMetaModelFactory.eINSTANCE.createArtifactWrapper();
+		ArtifactWrapper wrapper = ArtifactmodelFactory.eINSTANCE.createArtifactWrapper();
 		wrapper.setArtifactHandler(artifactHandler);
 		wrapper.setUri(artifactUri);
 		wrapper.setName(artifactName);
diff --git a/org.eclipse.capra.generic.feature/feature.xml b/org.eclipse.capra.generic.feature/feature.xml
index 596eeb7..63bbea0 100644
--- a/org.eclipse.capra.generic.feature/feature.xml
+++ b/org.eclipse.capra.generic.feature/feature.xml
@@ -36,4 +36,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.capra.generic.artifactmodel"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/org.eclipse.capra.generic.tracemodels/META-INF/MANIFEST.MF b/org.eclipse.capra.generic.tracemodels/META-INF/MANIFEST.MF
index 64d45a7..c34f8de 100644
--- a/org.eclipse.capra.generic.tracemodels/META-INF/MANIFEST.MF
+++ b/org.eclipse.capra.generic.tracemodels/META-INF/MANIFEST.MF
@@ -7,12 +7,7 @@
 Bundle-Vendor: Capra Development Team
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.capra.GenericArtifactMetaModel;
-  x-friends:="org.eclipse.capra.testsuite",
- org.eclipse.capra.GenericArtifactMetaModel.impl,
- org.eclipse.capra.GenericArtifactMetaModel.util,
- org.eclipse.capra.GenericTraceMetaModel;
-  x-friends:="org.eclipse.capra.testsuite",
+Export-Package: org.eclipse.capra.GenericTraceMetaModel,
  org.eclipse.capra.GenericTraceMetaModel.impl,
  org.eclipse.capra.GenericTraceMetaModel.util
 Require-Bundle: org.eclipse.core.runtime,
diff --git a/org.eclipse.capra.generic.tracemodels/plugin.xml b/org.eclipse.capra.generic.tracemodels/plugin.xml
index 5df6435..31f48f2 100644
--- a/org.eclipse.capra.generic.tracemodels/plugin.xml
+++ b/org.eclipse.capra.generic.tracemodels/plugin.xml
@@ -16,12 +16,6 @@
 -->
 
 <plugin>
-   <extension
-         point="org.eclipse.capra.configuration.artifactMetaModel">
-      <ArtifactMetaModelAdapter
-            class="org.eclipse.capra.generic.tracemodels.GenericArtifactMetaModelAdapter">
-      </ArtifactMetaModelAdapter>
-   </extension>
 
    <extension point="org.eclipse.emf.ecore.generated_package">
       <!-- @generated generictrace -->
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelFactoryImpl.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelFactoryImpl.java
deleted file mode 100644
index 9f11027..0000000
--- a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelFactoryImpl.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- */
-package org.eclipse.capra.GenericArtifactMetaModel.impl;
-
-import org.eclipse.capra.GenericArtifactMetaModel.*;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class GenericArtifactMetaModelFactoryImpl extends EFactoryImpl implements GenericArtifactMetaModelFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static GenericArtifactMetaModelFactory init() {
-		try {
-			GenericArtifactMetaModelFactory theGenericArtifactMetaModelFactory = (GenericArtifactMetaModelFactory)EPackage.Registry.INSTANCE.getEFactory(GenericArtifactMetaModelPackage.eNS_URI);
-			if (theGenericArtifactMetaModelFactory != null) {
-				return theGenericArtifactMetaModelFactory;
-			}
-		}
-		catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new GenericArtifactMetaModelFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public GenericArtifactMetaModelFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER: return createArtifactWrapperContainer();
-			case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER: return createArtifactWrapper();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ArtifactWrapperContainer createArtifactWrapperContainer() {
-		ArtifactWrapperContainerImpl artifactWrapperContainer = new ArtifactWrapperContainerImpl();
-		return artifactWrapperContainer;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ArtifactWrapper createArtifactWrapper() {
-		ArtifactWrapperImpl artifactWrapper = new ArtifactWrapperImpl();
-		return artifactWrapper;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public GenericArtifactMetaModelPackage getGenericArtifactMetaModelPackage() {
-		return (GenericArtifactMetaModelPackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static GenericArtifactMetaModelPackage getPackage() {
-		return GenericArtifactMetaModelPackage.eINSTANCE;
-	}
-
-} //GenericArtifactMetaModelFactoryImpl
diff --git a/org.eclipse.capra.handler.cdt/META-INF/MANIFEST.MF b/org.eclipse.capra.handler.cdt/META-INF/MANIFEST.MF
index 9647553..8eb10d8 100644
--- a/org.eclipse.capra.handler.cdt/META-INF/MANIFEST.MF
+++ b/org.eclipse.capra.handler.cdt/META-INF/MANIFEST.MF
@@ -12,9 +12,10 @@
  org.eclipse.capra.core,
  org.eclipse.core.runtime,
  org.eclipse.core.resources,
-  org.eclipse.ui.ide,
+ org.eclipse.ui.ide,
  org.eclipse.capra.generic.tracemodels,
- org.eclipse.capra.ui.notification
+ org.eclipse.capra.ui.notification,
+ org.eclipse.capra.generic.artifactmodel
 Export-Package: org.eclipse.capra.handler.cdt,
  org.eclipse.capra.handler.cdt.preferences
 Bundle-Activator: org.eclipse.capra.handler.cdt.Activator
diff --git a/org.eclipse.capra.handler.cdt/src/org/eclipse/capra/handler/cdt/notification/CElementChangeListener.java b/org.eclipse.capra.handler.cdt/src/org/eclipse/capra/handler/cdt/notification/CElementChangeListener.java
index c92c2fa..2d3cfb3 100644
--- a/org.eclipse.capra.handler.cdt/src/org/eclipse/capra/handler/cdt/notification/CElementChangeListener.java
+++ b/org.eclipse.capra.handler.cdt/src/org/eclipse/capra/handler/cdt/notification/CElementChangeListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  *   Contributors:
  *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
@@ -14,10 +14,10 @@
 import java.util.List;
 import java.util.stream.Collectors;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
 import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer;
 import org.eclipse.capra.handler.cdt.CDTHandler;
 import org.eclipse.capra.ui.notification.CapraNotificationHelper;
 import org.eclipse.capra.ui.notification.CapraNotificationHelper.IssueType;
@@ -43,7 +43,7 @@
  * Checks for changes of C/C++ elements to determine if they affect the trace
  * model. Creates markers on the artifact model if the changes affect artifact
  * wrappers.
- * 
+ *
  * @author Dusan Kalanj
  */
 public class CElementChangeListener implements IElementChangedListener {
@@ -146,7 +146,7 @@
 	/**
 	 * Generates the attributes that will later be assigned (in the createMarker
 	 * method in the CapraNotificationHelper) to a Capra change marker.
-	 * 
+	 *
 	 * @param aw
 	 *            ArtifactWrapper that links to the element in the delta or to a
 	 *            child of the element in the delta
diff --git a/org.eclipse.capra.handler.file/META-INF/MANIFEST.MF b/org.eclipse.capra.handler.file/META-INF/MANIFEST.MF
index 0a6bf07..f981fab 100644
--- a/org.eclipse.capra.handler.file/META-INF/MANIFEST.MF
+++ b/org.eclipse.capra.handler.file/META-INF/MANIFEST.MF
@@ -9,6 +9,7 @@
  org.eclipse.capra.core,
  org.eclipse.capra.ui.notification,
  org.eclipse.ui.ide,
- org.eclipse.capra.generic.tracemodels
+ org.eclipse.capra.generic.tracemodels,
+ org.eclipse.capra.generic.artifactmodel
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Vendor: Capra Development Team
diff --git a/org.eclipse.capra.handler.file/src/org/eclipse/capra/handler/file/notification/FileChangeListener.java b/org.eclipse.capra.handler.file/src/org/eclipse/capra/handler/file/notification/FileChangeListener.java
index 45d61e7..6820b65 100644
--- a/org.eclipse.capra.handler.file/src/org/eclipse/capra/handler/file/notification/FileChangeListener.java
+++ b/org.eclipse.capra.handler.file/src/org/eclipse/capra/handler/file/notification/FileChangeListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  *   Contributors:
  *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
@@ -14,10 +14,10 @@
 import java.util.List;
 import java.util.stream.Collectors;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
 import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer;
 import org.eclipse.capra.handler.file.IFileHandler;
 import org.eclipse.capra.ui.notification.CapraNotificationHelper;
 import org.eclipse.capra.ui.notification.CapraNotificationHelper.IssueType;
@@ -41,7 +41,7 @@
 /**
  * Checks for changes in workspace files and produces a Capra warning marker if
  * the changes affect a file that is traced.
- * 
+ *
  * @author Michael Warne
  */
 public class FileChangeListener implements IResourceChangeListener {
@@ -87,7 +87,7 @@
 	/**
 	 * Checks if the provided delta affects any of the artifacts and if it does,
 	 * produces a marker and attaches it to the wrapperContainer.
-	 * 
+	 *
 	 * @param delta
 	 *            represents changes in the state of the file
 	 * @param fileArtifacts
@@ -132,7 +132,7 @@
 	/**
 	 * Generates the attributes that will be assigned (in the createMarker
 	 * method) to a Capra warning marker.
-	 * 
+	 *
 	 * @param aw
 	 *            ArtifactWrapper that links to the file in the delta
 	 * @param delta
diff --git a/org.eclipse.capra.handler.jdt/META-INF/MANIFEST.MF b/org.eclipse.capra.handler.jdt/META-INF/MANIFEST.MF
index cd77fa6..3dd3c41 100644
--- a/org.eclipse.capra.handler.jdt/META-INF/MANIFEST.MF
+++ b/org.eclipse.capra.handler.jdt/META-INF/MANIFEST.MF
@@ -13,7 +13,8 @@
  org.eclipse.capra.core,
  org.eclipse.capra.ui.notification,
  org.eclipse.capra.generic.tracemodels,
- org.eclipse.core.runtime
+ org.eclipse.core.runtime,
+ org.eclipse.capra.generic.artifactmodel
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.capra.handler.jdt,
  org.eclipse.capra.handler.jdt.preferences
diff --git a/org.eclipse.capra.handler.jdt/src/org/eclipse/capra/handler/jdt/notification/JavaElementChangeListener.java b/org.eclipse.capra.handler.jdt/src/org/eclipse/capra/handler/jdt/notification/JavaElementChangeListener.java
index 54b3b81..d56fc55 100644
--- a/org.eclipse.capra.handler.jdt/src/org/eclipse/capra/handler/jdt/notification/JavaElementChangeListener.java
+++ b/org.eclipse.capra.handler.jdt/src/org/eclipse/capra/handler/jdt/notification/JavaElementChangeListener.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  *   Contributors:
  *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
@@ -14,10 +14,10 @@
 import java.util.List;
 import java.util.stream.Collectors;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
 import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer;
 import org.eclipse.capra.handler.jdt.JavaElementHandler;
 import org.eclipse.capra.ui.notification.CapraNotificationHelper;
 import org.eclipse.capra.ui.notification.CapraNotificationHelper.IssueType;
@@ -45,7 +45,7 @@
  * Checks for changes of JavaElements to determine if they affect the trace
  * model. Creates markers on the artifact model if the changes affect artifact
  * wrappers.
- * 
+ *
  * @author Dusan Kalanj
  */
 public class JavaElementChangeListener implements IElementChangedListener {
@@ -86,7 +86,7 @@
 		if (!(delta.getElement() instanceof ICompilationUnit))
 			// Only go as far as the source file
 			for (IJavaElementDelta subDelta : delta.getAffectedChildren())
-				handleDelta(subDelta, javaArtifacts, wrapperContainer);
+			handleDelta(subDelta, javaArtifacts, wrapperContainer);
 
 		int flags = delta.getFlags();
 		int changeType = delta.getKind();
@@ -143,7 +143,7 @@
 	/**
 	 * Generates the attributes that will later be assigned (in the createMarker
 	 * method) to a Capra change marker.
-	 * 
+	 *
 	 * @param aw
 	 *            ArtifactWrapper that links to the element in the delta or to a
 	 *            child of the element in the delta
diff --git a/org.eclipse.capra.handler.php/META-INF/MANIFEST.MF b/org.eclipse.capra.handler.php/META-INF/MANIFEST.MF
index 1a75929..d582474 100644
--- a/org.eclipse.capra.handler.php/META-INF/MANIFEST.MF
+++ b/org.eclipse.capra.handler.php/META-INF/MANIFEST.MF
@@ -11,6 +11,7 @@
  org.eclipse.core.runtime,
  org.eclipse.capra.generic.tracemodels,
  org.eclipse.capra.ui.notification,
- org.eclipse.ui
+ org.eclipse.ui,
+ org.eclipse.capra.generic.artifactmodel
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Vendor: Capra Development Team
diff --git a/org.eclipse.capra.handler.php/src/org/eclipse/capra/handler/php/notification/PHPElementChangeListener.java b/org.eclipse.capra.handler.php/src/org/eclipse/capra/handler/php/notification/PHPElementChangeListener.java
index 6bd8c78..349450d 100644
--- a/org.eclipse.capra.handler.php/src/org/eclipse/capra/handler/php/notification/PHPElementChangeListener.java
+++ b/org.eclipse.capra.handler.php/src/org/eclipse/capra/handler/php/notification/PHPElementChangeListener.java
@@ -14,10 +14,10 @@
 import java.util.List;
 import java.util.stream.Collectors;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
 import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer;
 import org.eclipse.capra.handler.php.PhpHandler;
 import org.eclipse.capra.ui.notification.CapraNotificationHelper;
 import org.eclipse.capra.ui.notification.CapraNotificationHelper.IssueType;
diff --git a/org.eclipse.capra.testsuite/META-INF/MANIFEST.MF b/org.eclipse.capra.testsuite/META-INF/MANIFEST.MF
index cc8dcd9..c02afea 100644
--- a/org.eclipse.capra.testsuite/META-INF/MANIFEST.MF
+++ b/org.eclipse.capra.testsuite/META-INF/MANIFEST.MF
@@ -30,7 +30,8 @@
  org.eclipse.ui.ide,
  org.eclipse.core.filesystem,
  org.eclipse.emf.edit,
- org.eclipse.emf.ecore.editor
+ org.eclipse.emf.ecore.editor,
+ org.eclipse.capra.generic.artifactmodel
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.swt.dnd
 Bundle-Vendor: Capra Development Team
diff --git a/org.eclipse.capra.testsuite/src/org/eclipse/capra/testsuite/TestHelper.java b/org.eclipse.capra.testsuite/src/org/eclipse/capra/testsuite/TestHelper.java
index aeb9daa..b893cef 100644
--- a/org.eclipse.capra.testsuite/src/org/eclipse/capra/testsuite/TestHelper.java
+++ b/org.eclipse.capra.testsuite/src/org/eclipse/capra/testsuite/TestHelper.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License v1.0
  *  which accompanies this distribution, and is available at
  *  http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  *   Contributors:
  *      Chalmers|Gothenburg University and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
@@ -18,13 +18,13 @@
 import java.util.List;
 import java.util.Optional;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
 import org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel;
 import org.eclipse.capra.GenericTraceMetaModel.RelatedTo;
 import org.eclipse.capra.core.adapters.Connection;
 import org.eclipse.capra.core.adapters.TraceMetaModelAdapter;
 import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
 import org.eclipse.capra.handler.cdt.CDTHandler;
 import org.eclipse.capra.handler.jdt.JavaElementHandler;
 import org.eclipse.capra.ui.handlers.TraceCreationHandler;
@@ -89,7 +89,7 @@
 
 	/**
 	 * Creates an empty project
-	 * 
+	 *
 	 * @param projectName
 	 *            the name of the project
 	 * @throws CoreException
@@ -105,7 +105,7 @@
 
 	/**
 	 * Creates a Java project and a Java class declaration inside it.
-	 * 
+	 *
 	 * @param projectName
 	 *            the name of the project
 	 * @return the created Java class
@@ -157,7 +157,7 @@
 
 	/**
 	 * Clears the active workspace by deleting all the contents.
-	 * 
+	 *
 	 * @throws CoreException
 	 */
 	public static void clearWorkspace() throws CoreException {
@@ -168,7 +168,7 @@
 
 	/**
 	 * Checks if the project with the provided name exists.
-	 * 
+	 *
 	 * @param projectName
 	 *            the name of the project
 	 * @return true if the project exists in the active workspace, false
@@ -180,7 +180,7 @@
 
 	/**
 	 * Returns a handle to the project resource with the given name.
-	 * 
+	 *
 	 * @param projectName
 	 *            the name of the project
 	 * @return a handle to the project resource
@@ -192,7 +192,7 @@
 
 	/**
 	 * Creates an empty Ecore model.
-	 * 
+	 *
 	 * @param name
 	 *            the name of the model
 	 * @return
@@ -205,7 +205,7 @@
 
 	/**
 	 * Creates an EClass entity in the provided model.
-	 * 
+	 *
 	 * @param p
 	 *            an Ecore model
 	 * @param name
@@ -219,7 +219,7 @@
 
 	/**
 	 * Nests a new EPackage inside the provided EPackage.
-	 * 
+	 *
 	 * @param p
 	 *            a new EPackage
 	 * @param name
@@ -233,7 +233,7 @@
 
 	/**
 	 * Persists (saves) the provided Ecore model in the specified project.
-	 * 
+	 *
 	 * @param project
 	 *            a handle to the project in which the model is to be persisted
 	 * @param pack
@@ -250,7 +250,7 @@
 
 	/**
 	 * Returns an Ecore model entity from the specified project.
-	 * 
+	 *
 	 * @param project
 	 *            the project containing the model
 	 * @param p
@@ -267,7 +267,7 @@
 
 	/**
 	 * Creates a trace between the objects that are in the Selection view.
-	 * 
+	 *
 	 * @param traceType
 	 *            the type of the trace that is to connect the objects
 	 */
@@ -284,7 +284,7 @@
 
 	/**
 	 * Checks if there is a trace between the provided EObjects.
-	 * 
+	 *
 	 * @param a
 	 *            first EObject
 	 * @param b
@@ -300,7 +300,7 @@
 
 	/**
 	 * Checks if there is a trace between the provided EObject and Java element.
-	 * 
+	 *
 	 * @param a
 	 *            EObject element
 	 * @param b
@@ -333,7 +333,7 @@
 	/**
 	 * Checks if there is a trace between the provided EObject and C or C++
 	 * element.
-	 * 
+	 *
 	 * @param a
 	 *            EObject element
 	 * @param b
@@ -364,7 +364,7 @@
 
 	/**
 	 * Checks if there is a trace between the provided resources.
-	 * 
+	 *
 	 * @param r1
 	 *            first resource
 	 * @param r2
@@ -405,7 +405,7 @@
 
 	/**
 	 * Creates an empty C or C++ project.
-	 * 
+	 *
 	 * @param projectName
 	 *            the name of the project to be created
 	 * @return a handle to the created project
@@ -434,7 +434,7 @@
 
 	/**
 	 * Creates a C source file in the provided C project.
-	 * 
+	 *
 	 * @param fileName
 	 *            the name of the C source file to be created in the project
 	 * @param cProject
@@ -460,7 +460,7 @@
 
 	/**
 	 * Creates an empty file in the project with the provided name.
-	 * 
+	 *
 	 * @param fileName
 	 *            the name of the created file
 	 * @param projectName
diff --git a/org.eclipse.capra.ui.notification/META-INF/MANIFEST.MF b/org.eclipse.capra.ui.notification/META-INF/MANIFEST.MF
index b1387e0..66b9cef 100644
--- a/org.eclipse.capra.ui.notification/META-INF/MANIFEST.MF
+++ b/org.eclipse.capra.ui.notification/META-INF/MANIFEST.MF
@@ -12,7 +12,8 @@
  org.eclipse.ui.ide,
  org.eclipse.emf.ecore,
  org.eclipse.capra.generic.tracemodels,
- org.eclipse.ui.ide
+ org.eclipse.ui.ide,
+ org.eclipse.capra.generic.artifactmodel
 Import-Package: org.eclipse.capra.ui.helpers,
  org.eclipse.emf.ecore,
  org.eclipse.emf.ecore.resource,
diff --git a/org.eclipse.capra.ui.notification/src/org/eclipse/capra/ui/notification/DeleteQuickFix.java b/org.eclipse.capra.ui.notification/src/org/eclipse/capra/ui/notification/DeleteQuickFix.java
index badaa87..8673c35 100644
--- a/org.eclipse.capra.ui.notification/src/org/eclipse/capra/ui/notification/DeleteQuickFix.java
+++ b/org.eclipse.capra.ui.notification/src/org/eclipse/capra/ui/notification/DeleteQuickFix.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  *   Contributors:
  *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
@@ -16,14 +16,14 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
 import org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel;
 import org.eclipse.capra.core.adapters.Connection;
 import org.eclipse.capra.core.adapters.TraceMetaModelAdapter;
 import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
 import org.eclipse.capra.core.helpers.TraceHelper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.emf.common.util.URI;
@@ -38,7 +38,7 @@
 /**
  * A quick fix to delete a trace link if one of the linked objects is no longer
  * available.
- * 
+ *
  * @author Michael Warne
  */
 public class DeleteQuickFix implements IMarkerResolution {
@@ -66,7 +66,6 @@
 		TraceHelper traceHelper = new TraceHelper(traceModel);
 		TraceMetaModelAdapter traceMetamodelAdapter = ExtensionPointHelper.getTraceMetamodelAdapter().get();
 		List<ArtifactWrapper> artifacts = ((ArtifactWrapperContainer) awc).getArtifacts();
-		
 
 		String artifactContainerFileName = awc.eResource().getURI().lastSegment();
 		String markerContainerFileName = new File(marker.getResource().toString()).getName();
diff --git a/org.eclipse.capra.ui.notification/src/org/eclipse/capra/ui/notification/RenameOrMoveQuickFix.java b/org.eclipse.capra.ui.notification/src/org/eclipse/capra/ui/notification/RenameOrMoveQuickFix.java
index aef39e2..39325c9 100644
--- a/org.eclipse.capra.ui.notification/src/org/eclipse/capra/ui/notification/RenameOrMoveQuickFix.java
+++ b/org.eclipse.capra.ui.notification/src/org/eclipse/capra/ui/notification/RenameOrMoveQuickFix.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  *   Contributors:
  *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
@@ -12,16 +12,15 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
 import org.eclipse.capra.core.adapters.Connection;
 import org.eclipse.capra.core.adapters.TraceMetaModelAdapter;
 import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
 import org.eclipse.capra.core.helpers.TraceHelper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapperContainer;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.emf.common.util.URI;
@@ -36,7 +35,7 @@
 /**
  * Renames and updates the properties in the associated artifact wrapper to
  * reflect changes in the original object represented by the wrapper.
- * 
+ *
  * @author Michael Warne
  */
 public class RenameOrMoveQuickFix implements IMarkerResolution {
diff --git a/org.eclipse.capra.ui.plantuml/META-INF/MANIFEST.MF b/org.eclipse.capra.ui.plantuml/META-INF/MANIFEST.MF
index a54edcf..d23e913 100644
--- a/org.eclipse.capra.ui.plantuml/META-INF/MANIFEST.MF
+++ b/org.eclipse.capra.ui.plantuml/META-INF/MANIFEST.MF
@@ -14,7 +14,8 @@
  org.eclipse.capra.ui,
  org.eclipse.capra.generic.tracemodels,
  org.eclipse.xtext.xbase.lib,
- org.eclipse.xtend.lib
+ org.eclipse.xtend.lib,
+ org.eclipse.capra.generic.artifactmodel
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.capra.ui.plantuml
 Bundle-Vendor: Capra Development Team
diff --git a/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/Connections.java b/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/Connections.java
index 9467b3b..3ba5c8d 100644
--- a/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/Connections.java
+++ b/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/Connections.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  *   Contributors:
  *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
@@ -20,17 +20,17 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
 import org.eclipse.capra.core.adapters.Connection;
 import org.eclipse.capra.core.handlers.IArtifactHandler;
 import org.eclipse.capra.core.helpers.EMFHelper;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
+import org.eclipse.capra.generic.artifactmodel.ArtifactWrapper;
 import org.eclipse.emf.ecore.EObject;
 
 /**
  * Helper class for generating PlantUML diagrams from a collection of
  * {@link Connection}
- * 
+ *
  * @author Anthony Anjorin, Salome Maro
  */
 public class Connections {
@@ -101,7 +101,7 @@
 	/**
 	 * The method gets the label of the element to be used for display in the
 	 * plant UML graph view and matrix view
-	 * 
+	 *
 	 * @param object
 	 *            The object for which the label is needed. This can be an EMF
 	 *            original representation or an artifact wrapper if the original
@@ -133,6 +133,5 @@
 		}
 		// remove unwanted characters like ", '
 		return artifactLabel.replaceAll(CHARACTERS_TO_BE_REMOVED, " ");
-
 	}
 }
diff --git a/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/DiagramTextProviderHandler.java b/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/DiagramTextProviderHandler.java
index a4c8ef8..c6bb097 100644
--- a/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/DiagramTextProviderHandler.java
+++ b/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/DiagramTextProviderHandler.java
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *  
+ *
  *   Contributors:
  *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
@@ -33,7 +33,7 @@
 /**
  * Provides PlantUML with a string representation of elements connected by trace
  * links.
- * 
+ *
  * @author Anthony Anjorin, Salome Maro
  */
 public class DiagramTextProviderHandler implements DiagramTextProvider {
@@ -152,4 +152,4 @@
 	public boolean supportsSelection(ISelection selection) {
 		return true;
 	}
-}
+}
\ No newline at end of file
diff --git a/org.eclipse.capra.ui/META-INF/MANIFEST.MF b/org.eclipse.capra.ui/META-INF/MANIFEST.MF
index 54c9038..2e8b85a 100644
--- a/org.eclipse.capra.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.capra.ui/META-INF/MANIFEST.MF
@@ -22,7 +22,8 @@
  org.eclipse.ui.ide,
  org.eclipse.ui,
  org.eclipse.core.resources,
- org.eclipse.capra.core
+ org.eclipse.capra.core,
+ org.eclipse.capra.generic.artifactmodel
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.capra.ui.handlers,
  org.eclipse.capra.ui.helpers,
diff --git a/pom.xml b/pom.xml
index 74ac20b..8697836 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,7 @@
 		<module>org.eclipse.capra.generic.persistence</module>
 		<module>org.eclipse.capra.generic.priority</module>
 		<module>org.eclipse.capra.generic.tracemodels</module>
+		<module>org.eclipse.capra.generic.artifactmodel</module>
 		<module>org.eclipse.capra.generic.feature</module>
 		<module>org.eclipse.capra.handler.cdt</module>
 		<module>org.eclipse.capra.handler.cdt.tests</module>