diff --git a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
index f19a93fdc0509d93741e997c3e7d89bb0087c666..294a9e2a4f6ee580456eba15ff74754211d458b9 100644
--- a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
+++ b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
@@ -12,57 +12,19 @@ class AdaptationPoints {
 }
 
 //
-// Repositories
+// Entity Adaptations
 //
 class AdaptationRepositories {
-	contains AdaptableNodeRepository nodeRepository
-	contains AdaptableEndPerformanceRepository endPerformanceRepository
-	contains AdaptableIntermediatePerformanceRepository intermediatePerformanceRepository
-	contains AdaptableSdnNodePerformanceRepository sdnNodePerformanceRepository
-	contains AdaptableNetworkInterfaceRepository networkInterfaceRepository
-	contains AdaptableNetworkInterfacePerformanceRepository networkInterfacePerformanceRepository
-	contains AdaptableLinkRepository linkRepository
-	contains AdaptableLinkPerformanceRepository linkPerformanceRepository
-}
-
-interface IAdaptableEntityRepository {
-}
-
-class AdaptableNodeRepository extends IAdaptableEntityRepository {
-	contains AdaptableNode[] node
-}
-
-class AdaptableLinkRepository extends IAdaptableEntityRepository {
-	contains AdaptableLink[] link
-}
-
-class AdaptableLinkPerformanceRepository extends IAdaptableEntityRepository {
-	contains AdaptableLinkPerformance[] linkPerformance
-}
-
-class AdaptableEndPerformanceRepository extends IAdaptableEntityRepository {
-	contains AdaptableEndPerformance[] endPerformance
-}
-
-class AdaptableIntermediatePerformanceRepository extends IAdaptableEntityRepository {
-	contains AdaptableIntermediatePerformance[] intermediatePerformance
-}
-
-class AdaptableSdnNodePerformanceRepository extends IAdaptableEntityRepository {
-	contains AdaptableSdnNodePerformance[] sdnNodePerformance
-}
-
-class AdaptableNetworkInterfaceRepository extends IAdaptableEntityRepository {
+	contains AdaptableNode[] nodes
+	contains AdaptableEndPerformance[] endPerformances
+	contains AdaptableIntermediatePerformance[] intermediatePerformances
+	contains AdaptableSdnNodePerformance[] sdnNodePerformances
 	contains AdaptableNetworkInterface[] networkInterfaces
+	contains AdaptableNetworkInterfacePerformance[] networkInterfacePerformances
+	contains AdaptableLink[] links
+	contains AdaptableLinkPerformance[] linkPerformances
 }
 
-class AdaptableNetworkInterfacePerformanceRepository extends IAdaptableEntityRepository {
-	contains AdaptableNetworkInterfacePerformance[] networkInterfacePerformance
-}
-
-//
-// Entity Adaptations
-//
 interface IAdaptableEntity<T extends tools.descartes.dni.dnimm3.ITypedEntity> {
 	refers T entityType
 }
@@ -173,7 +135,8 @@ class AdaptableNetworkInterfacePerformance extends IAdaptableEntity<tools.descar
 // Adaptation Groups
 //
 class AdaptationGroups {
-	contains IAdaptationGroup[] groups
+	contains NodeAdaptationGroup[] nodes
+	contains LinkAdaptationGroup[] links
 }
 
 interface IAdaptationGroup extends tools.descartes.dni.dnimm3.NamedElement {
diff --git a/tools.descartes.dni.adaptation/plugin.properties b/tools.descartes.dni.adaptation/plugin.properties
index f3233b027a63436a7eb3c88ceb5fd6dc469ec19e..90f96fad7446ad753e1be870e17919e9862934d6 100644
--- a/tools.descartes.dni.adaptation/plugin.properties
+++ b/tools.descartes.dni.adaptation/plugin.properties
@@ -388,3 +388,13 @@ _UI_AdaptableLink_adaptationGroup_feature = Adaptation Group
 _UI_LinkAdaptationGroup_type = Link Adaptation Group
 _UI_LinkAdaptationGroup_items_feature = Items
 _UI_AdaptationGroups_groups_feature = Groups
+_UI_AdaptationRepositories_nodes_feature = Nodes
+_UI_AdaptationRepositories_endPerformances_feature = End Performances
+_UI_AdaptationRepositories_intermediatePerformances_feature = Intermediate Performances
+_UI_AdaptationRepositories_sdnNodePerformances_feature = Sdn Node Performances
+_UI_AdaptationRepositories_networkInterfaces_feature = Network Interfaces
+_UI_AdaptationRepositories_networkInterfacePerformances_feature = Network Interface Performances
+_UI_AdaptationRepositories_links_feature = Links
+_UI_AdaptationRepositories_linkPerformances_feature = Link Performances
+_UI_AdaptationGroups_nodes_feature = Nodes
+_UI_AdaptationGroups_links_feature = Links
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableEndPerformanceRepository.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableEndPerformanceRepository.java
deleted file mode 100644
index a72a0fbfe50136509f0cedd32b1237c1c91ff580..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableEndPerformanceRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable End Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository#getEndPerformance <em>End Performance</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableEndPerformanceRepository()
- * @model
- * @generated
- */
-public interface AdaptableEndPerformanceRepository extends IAdaptableEntityRepository {
-	/**
-	 * Returns the value of the '<em><b>End Performance</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>End Performance</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>End Performance</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableEndPerformanceRepository_EndPerformance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<AdaptableEndPerformance> getEndPerformance();
-
-} // AdaptableEndPerformanceRepository
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableIntermediatePerformanceRepository.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableIntermediatePerformanceRepository.java
deleted file mode 100644
index 07a8212a85907a1e09c8032669e4058a1aa50d9e..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableIntermediatePerformanceRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Intermediate Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository#getIntermediatePerformance <em>Intermediate Performance</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableIntermediatePerformanceRepository()
- * @model
- * @generated
- */
-public interface AdaptableIntermediatePerformanceRepository extends IAdaptableEntityRepository {
-	/**
-	 * Returns the value of the '<em><b>Intermediate Performance</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Intermediate Performance</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Intermediate Performance</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableIntermediatePerformanceRepository_IntermediatePerformance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<AdaptableIntermediatePerformance> getIntermediatePerformance();
-
-} // AdaptableIntermediatePerformanceRepository
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkPerformanceRepository.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkPerformanceRepository.java
deleted file mode 100644
index a3b8e04b5daedf52642e7d174c4b0b3c74aeaa81..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkPerformanceRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Link Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository#getLinkPerformance <em>Link Performance</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLinkPerformanceRepository()
- * @model
- * @generated
- */
-public interface AdaptableLinkPerformanceRepository extends IAdaptableEntityRepository {
-	/**
-	 * Returns the value of the '<em><b>Link Performance</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Link Performance</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Link Performance</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLinkPerformanceRepository_LinkPerformance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<AdaptableLinkPerformance> getLinkPerformance();
-
-} // AdaptableLinkPerformanceRepository
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkRepository.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkRepository.java
deleted file mode 100644
index 6d01e3ea98338abd7ea35c0d377df5c8860701ac..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLinkRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Link Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLinkRepository#getLink <em>Link</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLinkRepository()
- * @model
- * @generated
- */
-public interface AdaptableLinkRepository extends IAdaptableEntityRepository {
-	/**
-	 * Returns the value of the '<em><b>Link</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableLink}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Link</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Link</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLinkRepository_Link()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<AdaptableLink> getLink();
-
-} // AdaptableLinkRepository
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfacePerformanceRepository.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfacePerformanceRepository.java
deleted file mode 100644
index 4043e1345c7850a79b5d467281db02e7a1543b4b..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfacePerformanceRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Network Interface Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository#getNetworkInterfacePerformance <em>Network Interface Performance</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterfacePerformanceRepository()
- * @model
- * @generated
- */
-public interface AdaptableNetworkInterfacePerformanceRepository extends IAdaptableEntityRepository {
-	/**
-	 * Returns the value of the '<em><b>Network Interface Performance</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Network Interface Performance</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Network Interface Performance</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterfacePerformanceRepository_NetworkInterfacePerformance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<AdaptableNetworkInterfacePerformance> getNetworkInterfacePerformance();
-
-} // AdaptableNetworkInterfacePerformanceRepository
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfaceRepository.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfaceRepository.java
deleted file mode 100644
index d9a3d4212efe66e49f3e6672a6301489d7d99247..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterfaceRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Network Interface Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository#getNetworkInterfaces <em>Network Interfaces</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterfaceRepository()
- * @model
- * @generated
- */
-public interface AdaptableNetworkInterfaceRepository extends IAdaptableEntityRepository {
-	/**
-	 * Returns the value of the '<em><b>Network Interfaces</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Network Interfaces</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Network Interfaces</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterfaceRepository_NetworkInterfaces()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<AdaptableNetworkInterface> getNetworkInterfaces();
-
-} // AdaptableNetworkInterfaceRepository
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNodeRepository.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNodeRepository.java
deleted file mode 100644
index 45c2bf3c9ed78f6e8ac4b38e636738047a57ef17..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNodeRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Node Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNodeRepository#getNode <em>Node</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNodeRepository()
- * @model
- * @generated
- */
-public interface AdaptableNodeRepository extends IAdaptableEntityRepository {
-	/**
-	 * Returns the value of the '<em><b>Node</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNode}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Node</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Node</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNodeRepository_Node()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<AdaptableNode> getNode();
-
-} // AdaptableNodeRepository
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformanceRepository.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformanceRepository.java
deleted file mode 100644
index c8c9b16ee078f8a439f277365d7dece8ed39f2d4..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformanceRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Adaptable Sdn Node Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository#getSdnNodePerformance <em>Sdn Node Performance</em>}</li>
- * </ul>
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableSdnNodePerformanceRepository()
- * @model
- * @generated
- */
-public interface AdaptableSdnNodePerformanceRepository extends IAdaptableEntityRepository {
-	/**
-	 * Returns the value of the '<em><b>Sdn Node Performance</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Sdn Node Performance</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Sdn Node Performance</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableSdnNodePerformanceRepository_SdnNodePerformance()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<AdaptableSdnNodePerformance> getSdnNodePerformance();
-
-} // AdaptableSdnNodePerformanceRepository
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationGroups.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationGroups.java
index d608ca73daae47f3c260c3006d6e57a1bd44ab45..cacb85230cbe0eb2d2a0c27d6cc92b2a403636fb 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationGroups.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationGroups.java
@@ -15,7 +15,8 @@ import org.eclipse.emf.ecore.EObject;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getGroups <em>Groups</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getNodes <em>Nodes</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getLinks <em>Links</em>}</li>
  * </ul>
  *
  * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationGroups()
@@ -24,19 +25,35 @@ import org.eclipse.emf.ecore.EObject;
  */
 public interface AdaptationGroups extends EObject {
 	/**
-	 * Returns the value of the '<em><b>Groups</b></em>' containment reference list.
-	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.IAdaptationGroup}.
+	 * Returns the value of the '<em><b>Nodes</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Groups</em>' containment reference list isn't clear,
+	 * If the meaning of the '<em>Nodes</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Groups</em>' containment reference list.
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationGroups_Groups()
+	 * @return the value of the '<em>Nodes</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationGroups_Nodes()
 	 * @model containment="true"
 	 * @generated
 	 */
-	EList<IAdaptationGroup> getGroups();
+	EList<NodeAdaptationGroup> getNodes();
+
+	/**
+	 * Returns the value of the '<em><b>Links</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Links</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Links</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationGroups_Links()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<LinkAdaptationGroup> getLinks();
 
 } // AdaptationGroups
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java
index 7560e47b7905cbf36b2ea84028bb9154fc61040f..85a46830ab90f6b451eb760a827e73783e3d7fd7 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java
@@ -52,7 +52,7 @@ public interface AdaptationPoints extends EObject {
 	 * Returns the value of the '<em><b>Groups</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Groups</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Groups</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationRepositories.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationRepositories.java
index 48d9c6e96a7a2ff68049f80ff28758f30be09920..9c7d46bf0aad9f5706ca146a87a04387ccc5df08 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationRepositories.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationRepositories.java
@@ -2,6 +2,8 @@
  */
 package tools.descartes.dni.dnimm3ap;
 
+import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EObject;
 
 /**
@@ -13,14 +15,14 @@ import org.eclipse.emf.ecore.EObject;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodeRepository <em>Node Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformanceRepository <em>End Performance Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformanceRepository <em>Intermediate Performance Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformanceRepository <em>Sdn Node Performance Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaceRepository <em>Network Interface Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformanceRepository <em>Network Interface Performance Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkRepository <em>Link Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformanceRepository <em>Link Performance Repository</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodes <em>Nodes</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformances <em>End Performances</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformances <em>Intermediate Performances</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformances <em>Sdn Node Performances</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaces <em>Network Interfaces</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformances <em>Network Interface Performances</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinks <em>Links</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformances <em>Link Performances</em>}</li>
  * </ul>
  *
  * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories()
@@ -29,211 +31,131 @@ import org.eclipse.emf.ecore.EObject;
  */
 public interface AdaptationRepositories extends EObject {
 	/**
-	 * Returns the value of the '<em><b>Node Repository</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Nodes</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNode}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Node Repository</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Nodes</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Node Repository</em>' containment reference.
-	 * @see #setNodeRepository(AdaptableNodeRepository)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_NodeRepository()
+	 * @return the value of the '<em>Nodes</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_Nodes()
 	 * @model containment="true"
 	 * @generated
 	 */
-	AdaptableNodeRepository getNodeRepository();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodeRepository <em>Node Repository</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Node Repository</em>' containment reference.
-	 * @see #getNodeRepository()
-	 * @generated
-	 */
-	void setNodeRepository(AdaptableNodeRepository value);
+	EList<AdaptableNode> getNodes();
 
 	/**
-	 * Returns the value of the '<em><b>End Performance Repository</b></em>' containment reference.
+	 * Returns the value of the '<em><b>End Performances</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformance}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>End Performance Repository</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>End Performances</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>End Performance Repository</em>' containment reference.
-	 * @see #setEndPerformanceRepository(AdaptableEndPerformanceRepository)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_EndPerformanceRepository()
+	 * @return the value of the '<em>End Performances</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_EndPerformances()
 	 * @model containment="true"
 	 * @generated
 	 */
-	AdaptableEndPerformanceRepository getEndPerformanceRepository();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformanceRepository <em>End Performance Repository</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>End Performance Repository</em>' containment reference.
-	 * @see #getEndPerformanceRepository()
-	 * @generated
-	 */
-	void setEndPerformanceRepository(AdaptableEndPerformanceRepository value);
+	EList<AdaptableEndPerformance> getEndPerformances();
 
 	/**
-	 * Returns the value of the '<em><b>Intermediate Performance Repository</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Intermediate Performances</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Intermediate Performance Repository</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Intermediate Performances</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Intermediate Performance Repository</em>' containment reference.
-	 * @see #setIntermediatePerformanceRepository(AdaptableIntermediatePerformanceRepository)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_IntermediatePerformanceRepository()
+	 * @return the value of the '<em>Intermediate Performances</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_IntermediatePerformances()
 	 * @model containment="true"
 	 * @generated
 	 */
-	AdaptableIntermediatePerformanceRepository getIntermediatePerformanceRepository();
+	EList<AdaptableIntermediatePerformance> getIntermediatePerformances();
 
 	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformanceRepository <em>Intermediate Performance Repository</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Intermediate Performance Repository</em>' containment reference.
-	 * @see #getIntermediatePerformanceRepository()
-	 * @generated
-	 */
-	void setIntermediatePerformanceRepository(AdaptableIntermediatePerformanceRepository value);
-
-	/**
-	 * Returns the value of the '<em><b>Sdn Node Performance Repository</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Sdn Node Performances</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Sdn Node Performance Repository</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Sdn Node Performances</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Sdn Node Performance Repository</em>' containment reference.
-	 * @see #setSdnNodePerformanceRepository(AdaptableSdnNodePerformanceRepository)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_SdnNodePerformanceRepository()
+	 * @return the value of the '<em>Sdn Node Performances</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_SdnNodePerformances()
 	 * @model containment="true"
 	 * @generated
 	 */
-	AdaptableSdnNodePerformanceRepository getSdnNodePerformanceRepository();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformanceRepository <em>Sdn Node Performance Repository</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Sdn Node Performance Repository</em>' containment reference.
-	 * @see #getSdnNodePerformanceRepository()
-	 * @generated
-	 */
-	void setSdnNodePerformanceRepository(AdaptableSdnNodePerformanceRepository value);
+	EList<AdaptableSdnNodePerformance> getSdnNodePerformances();
 
 	/**
-	 * Returns the value of the '<em><b>Network Interface Repository</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Network Interfaces</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Network Interface Repository</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Network Interfaces</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Network Interface Repository</em>' containment reference.
-	 * @see #setNetworkInterfaceRepository(AdaptableNetworkInterfaceRepository)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_NetworkInterfaceRepository()
+	 * @return the value of the '<em>Network Interfaces</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_NetworkInterfaces()
 	 * @model containment="true"
 	 * @generated
 	 */
-	AdaptableNetworkInterfaceRepository getNetworkInterfaceRepository();
+	EList<AdaptableNetworkInterface> getNetworkInterfaces();
 
 	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaceRepository <em>Network Interface Repository</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Network Interface Repository</em>' containment reference.
-	 * @see #getNetworkInterfaceRepository()
-	 * @generated
-	 */
-	void setNetworkInterfaceRepository(AdaptableNetworkInterfaceRepository value);
-
-	/**
-	 * Returns the value of the '<em><b>Network Interface Performance Repository</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Network Interface Performances</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Network Interface Performance Repository</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Network Interface Performances</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Network Interface Performance Repository</em>' containment reference.
-	 * @see #setNetworkInterfacePerformanceRepository(AdaptableNetworkInterfacePerformanceRepository)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_NetworkInterfacePerformanceRepository()
+	 * @return the value of the '<em>Network Interface Performances</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_NetworkInterfacePerformances()
 	 * @model containment="true"
 	 * @generated
 	 */
-	AdaptableNetworkInterfacePerformanceRepository getNetworkInterfacePerformanceRepository();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformanceRepository <em>Network Interface Performance Repository</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Network Interface Performance Repository</em>' containment reference.
-	 * @see #getNetworkInterfacePerformanceRepository()
-	 * @generated
-	 */
-	void setNetworkInterfacePerformanceRepository(AdaptableNetworkInterfacePerformanceRepository value);
+	EList<AdaptableNetworkInterfacePerformance> getNetworkInterfacePerformances();
 
 	/**
-	 * Returns the value of the '<em><b>Link Repository</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Links</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableLink}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Link Repository</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Links</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Link Repository</em>' containment reference.
-	 * @see #setLinkRepository(AdaptableLinkRepository)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_LinkRepository()
+	 * @return the value of the '<em>Links</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_Links()
 	 * @model containment="true"
 	 * @generated
 	 */
-	AdaptableLinkRepository getLinkRepository();
+	EList<AdaptableLink> getLinks();
 
 	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkRepository <em>Link Repository</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Link Repository</em>' containment reference.
-	 * @see #getLinkRepository()
-	 * @generated
-	 */
-	void setLinkRepository(AdaptableLinkRepository value);
-
-	/**
-	 * Returns the value of the '<em><b>Link Performance Repository</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Link Performances</b></em>' containment reference list.
+	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Link Performance Repository</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Link Performances</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Link Performance Repository</em>' containment reference.
-	 * @see #setLinkPerformanceRepository(AdaptableLinkPerformanceRepository)
-	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_LinkPerformanceRepository()
+	 * @return the value of the '<em>Link Performances</em>' containment reference list.
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationRepositories_LinkPerformances()
 	 * @model containment="true"
 	 * @generated
 	 */
-	AdaptableLinkPerformanceRepository getLinkPerformanceRepository();
-
-	/**
-	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformanceRepository <em>Link Performance Repository</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Link Performance Repository</em>' containment reference.
-	 * @see #getLinkPerformanceRepository()
-	 * @generated
-	 */
-	void setLinkPerformanceRepository(AdaptableLinkPerformanceRepository value);
+	EList<AdaptableLinkPerformance> getLinkPerformances();
 
 } // AdaptationRepositories
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPFactory.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPFactory.java
index 7430e0528300e9362c21ac7ffb78385a6f19a76c..69b6f211b4fcd3be78d8852936b1f0fc4c92bdcd 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPFactory.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPFactory.java
@@ -39,78 +39,6 @@ public interface DNIAPFactory extends EFactory {
 	 */
 	AdaptationRepositories createAdaptationRepositories();
 
-	/**
-	 * Returns a new object of class '<em>Adaptable Node Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Node Repository</em>'.
-	 * @generated
-	 */
-	AdaptableNodeRepository createAdaptableNodeRepository();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Link Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Link Repository</em>'.
-	 * @generated
-	 */
-	AdaptableLinkRepository createAdaptableLinkRepository();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Link Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Link Performance Repository</em>'.
-	 * @generated
-	 */
-	AdaptableLinkPerformanceRepository createAdaptableLinkPerformanceRepository();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable End Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable End Performance Repository</em>'.
-	 * @generated
-	 */
-	AdaptableEndPerformanceRepository createAdaptableEndPerformanceRepository();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Intermediate Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Intermediate Performance Repository</em>'.
-	 * @generated
-	 */
-	AdaptableIntermediatePerformanceRepository createAdaptableIntermediatePerformanceRepository();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Sdn Node Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Sdn Node Performance Repository</em>'.
-	 * @generated
-	 */
-	AdaptableSdnNodePerformanceRepository createAdaptableSdnNodePerformanceRepository();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Network Interface Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Network Interface Repository</em>'.
-	 * @generated
-	 */
-	AdaptableNetworkInterfaceRepository createAdaptableNetworkInterfaceRepository();
-
-	/**
-	 * Returns a new object of class '<em>Adaptable Network Interface Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Adaptable Network Interface Performance Repository</em>'.
-	 * @generated
-	 */
-	AdaptableNetworkInterfacePerformanceRepository createAdaptableNetworkInterfacePerformanceRepository();
-
 	/**
 	 * Returns a new object of class '<em>Adaptable Node</em>'.
 	 * <!-- begin-user-doc -->
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java
index f5604c36d1039a55d0e15da8816c36395316f45a..c476b8b31a6776a5ce5422cc25035a2acb6fda6d 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java
@@ -116,76 +116,76 @@ public interface DNIAPPackage extends EPackage {
 	int ADAPTATION_REPOSITORIES = 1;
 
 	/**
-	 * The feature id for the '<em><b>Node Repository</b></em>' containment reference.
+	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_REPOSITORIES__NODE_REPOSITORY = 0;
+	int ADAPTATION_REPOSITORIES__NODES = 0;
 
 	/**
-	 * The feature id for the '<em><b>End Performance Repository</b></em>' containment reference.
+	 * The feature id for the '<em><b>End Performances</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY = 1;
+	int ADAPTATION_REPOSITORIES__END_PERFORMANCES = 1;
 
 	/**
-	 * The feature id for the '<em><b>Intermediate Performance Repository</b></em>' containment reference.
+	 * The feature id for the '<em><b>Intermediate Performances</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY = 2;
+	int ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES = 2;
 
 	/**
-	 * The feature id for the '<em><b>Sdn Node Performance Repository</b></em>' containment reference.
+	 * The feature id for the '<em><b>Sdn Node Performances</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY = 3;
+	int ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES = 3;
 
 	/**
-	 * The feature id for the '<em><b>Network Interface Repository</b></em>' containment reference.
+	 * The feature id for the '<em><b>Network Interfaces</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY = 4;
+	int ADAPTATION_REPOSITORIES__NETWORK_INTERFACES = 4;
 
 	/**
-	 * The feature id for the '<em><b>Network Interface Performance Repository</b></em>' containment reference.
+	 * The feature id for the '<em><b>Network Interface Performances</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY = 5;
+	int ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES = 5;
 
 	/**
-	 * The feature id for the '<em><b>Link Repository</b></em>' containment reference.
+	 * The feature id for the '<em><b>Links</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_REPOSITORIES__LINK_REPOSITORY = 6;
+	int ADAPTATION_REPOSITORIES__LINKS = 6;
 
 	/**
-	 * The feature id for the '<em><b>Link Performance Repository</b></em>' containment reference.
+	 * The feature id for the '<em><b>Link Performances</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY = 7;
+	int ADAPTATION_REPOSITORIES__LINK_PERFORMANCES = 7;
 
 	/**
 	 * The number of structural features of the '<em>Adaptation Repositories</em>' class.
@@ -205,330 +205,6 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	int ADAPTATION_REPOSITORIES_OPERATION_COUNT = 0;
 
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntityRepository <em>IAdaptable Entity Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.IAdaptableEntityRepository
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptableEntityRepository()
-	 * @generated
-	 */
-	int IADAPTABLE_ENTITY_REPOSITORY = 2;
-
-	/**
-	 * The number of structural features of the '<em>IAdaptable Entity Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>IAdaptable Entity Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IADAPTABLE_ENTITY_REPOSITORY_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeRepositoryImpl <em>Adaptable Node Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNodeRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNodeRepository()
-	 * @generated
-	 */
-	int ADAPTABLE_NODE_REPOSITORY = 3;
-
-	/**
-	 * The feature id for the '<em><b>Node</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE_REPOSITORY__NODE = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Node Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE_REPOSITORY_FEATURE_COUNT = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Node Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NODE_REPOSITORY_OPERATION_COUNT = IADAPTABLE_ENTITY_REPOSITORY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkRepositoryImpl <em>Adaptable Link Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableLinkRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLinkRepository()
-	 * @generated
-	 */
-	int ADAPTABLE_LINK_REPOSITORY = 4;
-
-	/**
-	 * The feature id for the '<em><b>Link</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_REPOSITORY__LINK = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Link Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_REPOSITORY_FEATURE_COUNT = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Link Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_REPOSITORY_OPERATION_COUNT = IADAPTABLE_ENTITY_REPOSITORY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceRepositoryImpl <em>Adaptable Link Performance Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLinkPerformanceRepository()
-	 * @generated
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE_REPOSITORY = 5;
-
-	/**
-	 * The feature id for the '<em><b>Link Performance</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Link Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE_REPOSITORY_FEATURE_COUNT = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Link Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_LINK_PERFORMANCE_REPOSITORY_OPERATION_COUNT = IADAPTABLE_ENTITY_REPOSITORY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceRepositoryImpl <em>Adaptable End Performance Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableEndPerformanceRepository()
-	 * @generated
-	 */
-	int ADAPTABLE_END_PERFORMANCE_REPOSITORY = 6;
-
-	/**
-	 * The feature id for the '<em><b>End Performance</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable End Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_END_PERFORMANCE_REPOSITORY_FEATURE_COUNT = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Adaptable End Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_END_PERFORMANCE_REPOSITORY_OPERATION_COUNT = IADAPTABLE_ENTITY_REPOSITORY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceRepositoryImpl <em>Adaptable Intermediate Performance Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableIntermediatePerformanceRepository()
-	 * @generated
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY = 7;
-
-	/**
-	 * The feature id for the '<em><b>Intermediate Performance</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Intermediate Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY_FEATURE_COUNT = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Intermediate Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY_OPERATION_COUNT = IADAPTABLE_ENTITY_REPOSITORY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceRepositoryImpl <em>Adaptable Sdn Node Performance Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableSdnNodePerformanceRepository()
-	 * @generated
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY = 8;
-
-	/**
-	 * The feature id for the '<em><b>Sdn Node Performance</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Sdn Node Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY_FEATURE_COUNT = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Sdn Node Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY_OPERATION_COUNT = IADAPTABLE_ENTITY_REPOSITORY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceRepositoryImpl <em>Adaptable Network Interface Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterfaceRepository()
-	 * @generated
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_REPOSITORY = 9;
-
-	/**
-	 * The feature id for the '<em><b>Network Interfaces</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Network Interface Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_REPOSITORY_FEATURE_COUNT = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Network Interface Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_REPOSITORY_OPERATION_COUNT = IADAPTABLE_ENTITY_REPOSITORY_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceRepositoryImpl <em>Adaptable Network Interface Performance Repository</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceRepositoryImpl
-	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterfacePerformanceRepository()
-	 * @generated
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY = 10;
-
-	/**
-	 * The feature id for the '<em><b>Network Interface Performance</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Adaptable Network Interface Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY_FEATURE_COUNT = IADAPTABLE_ENTITY_REPOSITORY_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of operations of the '<em>Adaptable Network Interface Performance Repository</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY_OPERATION_COUNT = IADAPTABLE_ENTITY_REPOSITORY_OPERATION_COUNT + 0;
-
 	/**
 	 * The meta object id for the '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity <em>IAdaptable Entity</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -537,7 +213,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptableEntity()
 	 * @generated
 	 */
-	int IADAPTABLE_ENTITY = 11;
+	int IADAPTABLE_ENTITY = 2;
 
 	/**
 	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
@@ -574,7 +250,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptableGroupableEntity()
 	 * @generated
 	 */
-	int IADAPTABLE_GROUPABLE_ENTITY = 12;
+	int IADAPTABLE_GROUPABLE_ENTITY = 3;
 
 	/**
 	 * The number of structural features of the '<em>IAdaptable Groupable Entity</em>' class.
@@ -602,7 +278,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNode()
 	 * @generated
 	 */
-	int ADAPTABLE_NODE = 13;
+	int ADAPTABLE_NODE = 4;
 
 	/**
 	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
@@ -693,7 +369,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLink()
 	 * @generated
 	 */
-	int ADAPTABLE_LINK = 14;
+	int ADAPTABLE_LINK = 5;
 
 	/**
 	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
@@ -766,7 +442,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLinkPerformance()
 	 * @generated
 	 */
-	int ADAPTABLE_LINK_PERFORMANCE = 15;
+	int ADAPTABLE_LINK_PERFORMANCE = 6;
 
 	/**
 	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
@@ -830,7 +506,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableEndPerformance()
 	 * @generated
 	 */
-	int ADAPTABLE_END_PERFORMANCE = 16;
+	int ADAPTABLE_END_PERFORMANCE = 7;
 
 	/**
 	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
@@ -885,7 +561,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableIntermediatePerformance()
 	 * @generated
 	 */
-	int ADAPTABLE_INTERMEDIATE_PERFORMANCE = 17;
+	int ADAPTABLE_INTERMEDIATE_PERFORMANCE = 8;
 
 	/**
 	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
@@ -958,7 +634,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableSdnNodePerformance()
 	 * @generated
 	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE = 18;
+	int ADAPTABLE_SDN_NODE_PERFORMANCE = 9;
 
 	/**
 	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
@@ -1022,7 +698,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterface()
 	 * @generated
 	 */
-	int ADAPTABLE_NETWORK_INTERFACE = 19;
+	int ADAPTABLE_NETWORK_INTERFACE = 10;
 
 	/**
 	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
@@ -1077,7 +753,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterfacePerformance()
 	 * @generated
 	 */
-	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE = 20;
+	int ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE = 11;
 
 	/**
 	 * The feature id for the '<em><b>Entity Type</b></em>' reference.
@@ -1141,16 +817,25 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptationGroups()
 	 * @generated
 	 */
-	int ADAPTATION_GROUPS = 21;
+	int ADAPTATION_GROUPS = 12;
 
 	/**
-	 * The feature id for the '<em><b>Groups</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_GROUPS__GROUPS = 0;
+	int ADAPTATION_GROUPS__NODES = 0;
+
+	/**
+	 * The feature id for the '<em><b>Links</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTATION_GROUPS__LINKS = 1;
 
 	/**
 	 * The number of structural features of the '<em>Adaptation Groups</em>' class.
@@ -1159,7 +844,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTATION_GROUPS_FEATURE_COUNT = 1;
+	int ADAPTATION_GROUPS_FEATURE_COUNT = 2;
 
 	/**
 	 * The number of operations of the '<em>Adaptation Groups</em>' class.
@@ -1178,7 +863,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptationGroup()
 	 * @generated
 	 */
-	int IADAPTATION_GROUP = 22;
+	int IADAPTATION_GROUP = 13;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1224,7 +909,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getNodeAdaptationGroup()
 	 * @generated
 	 */
-	int NODE_ADAPTATION_GROUP = 23;
+	int NODE_ADAPTATION_GROUP = 14;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1279,7 +964,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getLinkAdaptationGroup()
 	 * @generated
 	 */
-	int LINK_ADAPTATION_GROUP = 24;
+	int LINK_ADAPTATION_GROUP = 15;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1334,7 +1019,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeParameterSet()
 	 * @generated
 	 */
-	int ALTERNATIVE_PARAMETER_SET = 25;
+	int ALTERNATIVE_PARAMETER_SET = 16;
 
 	/**
 	 * The feature id for the '<em><b>Alternative</b></em>' containment reference list.
@@ -1371,7 +1056,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeVariable()
 	 * @generated
 	 */
-	int ALTERNATIVE_VARIABLE = 26;
+	int ALTERNATIVE_VARIABLE = 17;
 
 	/**
 	 * The number of structural features of the '<em>Alternative Variable</em>' class.
@@ -1399,7 +1084,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeVariableSet()
 	 * @generated
 	 */
-	int ALTERNATIVE_VARIABLE_SET = 27;
+	int ALTERNATIVE_VARIABLE_SET = 18;
 
 	/**
 	 * The feature id for the '<em><b>Alternative</b></em>' containment reference list.
@@ -1436,7 +1121,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeConstantLong()
 	 * @generated
 	 */
-	int ALTERNATIVE_CONSTANT_LONG = 28;
+	int ALTERNATIVE_CONSTANT_LONG = 19;
 
 	/**
 	 * The number of structural features of the '<em>Alternative Constant Long</em>' class.
@@ -1464,7 +1149,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAlternativeConstantLongVariableSet()
 	 * @generated
 	 */
-	int ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET = 29;
+	int ALTERNATIVE_CONSTANT_LONG_VARIABLE_SET = 20;
 
 	/**
 	 * The feature id for the '<em><b>Alternative</b></em>' containment reference list.
@@ -1537,270 +1222,92 @@ public interface DNIAPPackage extends EPackage {
 	EClass getAdaptationRepositories();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodeRepository <em>Node Repository</em>}'.
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodes <em>Nodes</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Node Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodeRepository()
+	 * @return the meta object for the containment reference list '<em>Nodes</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNodes()
 	 * @see #getAdaptationRepositories()
 	 * @generated
 	 */
-	EReference getAdaptationRepositories_NodeRepository();
+	EReference getAdaptationRepositories_Nodes();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformanceRepository <em>End Performance Repository</em>}'.
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformances <em>End Performances</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>End Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformanceRepository()
+	 * @return the meta object for the containment reference list '<em>End Performances</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getEndPerformances()
 	 * @see #getAdaptationRepositories()
 	 * @generated
 	 */
-	EReference getAdaptationRepositories_EndPerformanceRepository();
+	EReference getAdaptationRepositories_EndPerformances();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformanceRepository <em>Intermediate Performance Repository</em>}'.
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformances <em>Intermediate Performances</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Intermediate Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformanceRepository()
+	 * @return the meta object for the containment reference list '<em>Intermediate Performances</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getIntermediatePerformances()
 	 * @see #getAdaptationRepositories()
 	 * @generated
 	 */
-	EReference getAdaptationRepositories_IntermediatePerformanceRepository();
+	EReference getAdaptationRepositories_IntermediatePerformances();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformanceRepository <em>Sdn Node Performance Repository</em>}'.
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformances <em>Sdn Node Performances</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Sdn Node Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformanceRepository()
+	 * @return the meta object for the containment reference list '<em>Sdn Node Performances</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getSdnNodePerformances()
 	 * @see #getAdaptationRepositories()
 	 * @generated
 	 */
-	EReference getAdaptationRepositories_SdnNodePerformanceRepository();
+	EReference getAdaptationRepositories_SdnNodePerformances();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaceRepository <em>Network Interface Repository</em>}'.
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaces <em>Network Interfaces</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Network Interface Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaceRepository()
+	 * @return the meta object for the containment reference list '<em>Network Interfaces</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfaces()
 	 * @see #getAdaptationRepositories()
 	 * @generated
 	 */
-	EReference getAdaptationRepositories_NetworkInterfaceRepository();
+	EReference getAdaptationRepositories_NetworkInterfaces();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformanceRepository <em>Network Interface Performance Repository</em>}'.
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformances <em>Network Interface Performances</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Network Interface Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformanceRepository()
+	 * @return the meta object for the containment reference list '<em>Network Interface Performances</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getNetworkInterfacePerformances()
 	 * @see #getAdaptationRepositories()
 	 * @generated
 	 */
-	EReference getAdaptationRepositories_NetworkInterfacePerformanceRepository();
+	EReference getAdaptationRepositories_NetworkInterfacePerformances();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkRepository <em>Link Repository</em>}'.
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinks <em>Links</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Link Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkRepository()
+	 * @return the meta object for the containment reference list '<em>Links</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinks()
 	 * @see #getAdaptationRepositories()
 	 * @generated
 	 */
-	EReference getAdaptationRepositories_LinkRepository();
+	EReference getAdaptationRepositories_Links();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformanceRepository <em>Link Performance Repository</em>}'.
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformances <em>Link Performances</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Link Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformanceRepository()
+	 * @return the meta object for the containment reference list '<em>Link Performances</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationRepositories#getLinkPerformances()
 	 * @see #getAdaptationRepositories()
 	 * @generated
 	 */
-	EReference getAdaptationRepositories_LinkPerformanceRepository();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntityRepository <em>IAdaptable Entity Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>IAdaptable Entity Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.IAdaptableEntityRepository
-	 * @generated
-	 */
-	EClass getIAdaptableEntityRepository();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableNodeRepository <em>Adaptable Node Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Node Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNodeRepository
-	 * @generated
-	 */
-	EClass getAdaptableNodeRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNodeRepository#getNode <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Node</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNodeRepository#getNode()
-	 * @see #getAdaptableNodeRepository()
-	 * @generated
-	 */
-	EReference getAdaptableNodeRepository_Node();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkRepository <em>Adaptable Link Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Link Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLinkRepository
-	 * @generated
-	 */
-	EClass getAdaptableLinkRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkRepository#getLink <em>Link</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Link</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLinkRepository#getLink()
-	 * @see #getAdaptableLinkRepository()
-	 * @generated
-	 */
-	EReference getAdaptableLinkRepository_Link();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository <em>Adaptable Link Performance Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Link Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository
-	 * @generated
-	 */
-	EClass getAdaptableLinkPerformanceRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository#getLinkPerformance <em>Link Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Link Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository#getLinkPerformance()
-	 * @see #getAdaptableLinkPerformanceRepository()
-	 * @generated
-	 */
-	EReference getAdaptableLinkPerformanceRepository_LinkPerformance();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository <em>Adaptable End Performance Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable End Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository
-	 * @generated
-	 */
-	EClass getAdaptableEndPerformanceRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository#getEndPerformance <em>End Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>End Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository#getEndPerformance()
-	 * @see #getAdaptableEndPerformanceRepository()
-	 * @generated
-	 */
-	EReference getAdaptableEndPerformanceRepository_EndPerformance();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository <em>Adaptable Intermediate Performance Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Intermediate Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository
-	 * @generated
-	 */
-	EClass getAdaptableIntermediatePerformanceRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository#getIntermediatePerformance <em>Intermediate Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Intermediate Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository#getIntermediatePerformance()
-	 * @see #getAdaptableIntermediatePerformanceRepository()
-	 * @generated
-	 */
-	EReference getAdaptableIntermediatePerformanceRepository_IntermediatePerformance();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository <em>Adaptable Sdn Node Performance Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Sdn Node Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository
-	 * @generated
-	 */
-	EClass getAdaptableSdnNodePerformanceRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository#getSdnNodePerformance <em>Sdn Node Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Sdn Node Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository#getSdnNodePerformance()
-	 * @see #getAdaptableSdnNodePerformanceRepository()
-	 * @generated
-	 */
-	EReference getAdaptableSdnNodePerformanceRepository_SdnNodePerformance();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository <em>Adaptable Network Interface Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Network Interface Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository
-	 * @generated
-	 */
-	EClass getAdaptableNetworkInterfaceRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository#getNetworkInterfaces <em>Network Interfaces</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Network Interfaces</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository#getNetworkInterfaces()
-	 * @see #getAdaptableNetworkInterfaceRepository()
-	 * @generated
-	 */
-	EReference getAdaptableNetworkInterfaceRepository_NetworkInterfaces();
-
-	/**
-	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository <em>Adaptable Network Interface Performance Repository</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Adaptable Network Interface Performance Repository</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository
-	 * @generated
-	 */
-	EClass getAdaptableNetworkInterfacePerformanceRepository();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository#getNetworkInterfacePerformance <em>Network Interface Performance</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Network Interface Performance</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository#getNetworkInterfacePerformance()
-	 * @see #getAdaptableNetworkInterfacePerformanceRepository()
-	 * @generated
-	 */
-	EReference getAdaptableNetworkInterfacePerformanceRepository_NetworkInterfacePerformance();
+	EReference getAdaptationRepositories_LinkPerformances();
 
 	/**
 	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity <em>IAdaptable Entity</em>}'.
@@ -2221,15 +1728,26 @@ public interface DNIAPPackage extends EPackage {
 	EClass getAdaptationGroups();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getGroups <em>Groups</em>}'.
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getNodes <em>Nodes</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Groups</em>'.
-	 * @see tools.descartes.dni.dnimm3ap.AdaptationGroups#getGroups()
+	 * @return the meta object for the containment reference list '<em>Nodes</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationGroups#getNodes()
 	 * @see #getAdaptationGroups()
 	 * @generated
 	 */
-	EReference getAdaptationGroups_Groups();
+	EReference getAdaptationGroups_Nodes();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link tools.descartes.dni.dnimm3ap.AdaptationGroups#getLinks <em>Links</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Links</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptationGroups#getLinks()
+	 * @see #getAdaptationGroups()
+	 * @generated
+	 */
+	EReference getAdaptationGroups_Links();
 
 	/**
 	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.IAdaptationGroup <em>IAdaptation Group</em>}'.
@@ -2404,222 +1922,68 @@ public interface DNIAPPackage extends EPackage {
 		EClass ADAPTATION_REPOSITORIES = eINSTANCE.getAdaptationRepositories();
 
 		/**
-		 * The meta object literal for the '<em><b>Node Repository</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__NODE_REPOSITORY = eINSTANCE.getAdaptationRepositories_NodeRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>End Performance Repository</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptationRepositories_EndPerformanceRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Intermediate Performance Repository</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptationRepositories_IntermediatePerformanceRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Sdn Node Performance Repository</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptationRepositories_SdnNodePerformanceRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Network Interface Repository</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY = eINSTANCE.getAdaptationRepositories_NetworkInterfaceRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Network Interface Performance Repository</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptationRepositories_NetworkInterfacePerformanceRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Link Repository</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__LINK_REPOSITORY = eINSTANCE.getAdaptationRepositories_LinkRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Link Performance Repository</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptationRepositories_LinkPerformanceRepository();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntityRepository <em>IAdaptable Entity Repository</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.IAdaptableEntityRepository
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getIAdaptableEntityRepository()
-		 * @generated
-		 */
-		EClass IADAPTABLE_ENTITY_REPOSITORY = eINSTANCE.getIAdaptableEntityRepository();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeRepositoryImpl <em>Adaptable Node Repository</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNodeRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNodeRepository()
-		 * @generated
-		 */
-		EClass ADAPTABLE_NODE_REPOSITORY = eINSTANCE.getAdaptableNodeRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Node</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_NODE_REPOSITORY__NODE = eINSTANCE.getAdaptableNodeRepository_Node();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkRepositoryImpl <em>Adaptable Link Repository</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableLinkRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLinkRepository()
-		 * @generated
-		 */
-		EClass ADAPTABLE_LINK_REPOSITORY = eINSTANCE.getAdaptableLinkRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Link</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_LINK_REPOSITORY__LINK = eINSTANCE.getAdaptableLinkRepository_Link();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceRepositoryImpl <em>Adaptable Link Performance Repository</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableLinkPerformanceRepository()
-		 * @generated
-		 */
-		EClass ADAPTABLE_LINK_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptableLinkPerformanceRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>Link Performance</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE = eINSTANCE.getAdaptableLinkPerformanceRepository_LinkPerformance();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceRepositoryImpl <em>Adaptable End Performance Repository</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableEndPerformanceRepository()
-		 * @generated
-		 */
-		EClass ADAPTABLE_END_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptableEndPerformanceRepository();
-
-		/**
-		 * The meta object literal for the '<em><b>End Performance</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Nodes</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE = eINSTANCE.getAdaptableEndPerformanceRepository_EndPerformance();
+		EReference ADAPTATION_REPOSITORIES__NODES = eINSTANCE.getAdaptationRepositories_Nodes();
 
 		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceRepositoryImpl <em>Adaptable Intermediate Performance Repository</em>}' class.
+		 * The meta object literal for the '<em><b>End Performances</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableIntermediatePerformanceRepository()
 		 * @generated
 		 */
-		EClass ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptableIntermediatePerformanceRepository();
+		EReference ADAPTATION_REPOSITORIES__END_PERFORMANCES = eINSTANCE.getAdaptationRepositories_EndPerformances();
 
 		/**
-		 * The meta object literal for the '<em><b>Intermediate Performance</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Intermediate Performances</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE = eINSTANCE.getAdaptableIntermediatePerformanceRepository_IntermediatePerformance();
+		EReference ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES = eINSTANCE.getAdaptationRepositories_IntermediatePerformances();
 
 		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceRepositoryImpl <em>Adaptable Sdn Node Performance Repository</em>}' class.
+		 * The meta object literal for the '<em><b>Sdn Node Performances</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableSdnNodePerformanceRepository()
 		 * @generated
 		 */
-		EClass ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptableSdnNodePerformanceRepository();
+		EReference ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES = eINSTANCE.getAdaptationRepositories_SdnNodePerformances();
 
 		/**
-		 * The meta object literal for the '<em><b>Sdn Node Performance</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE = eINSTANCE.getAdaptableSdnNodePerformanceRepository_SdnNodePerformance();
-
-		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceRepositoryImpl <em>Adaptable Network Interface Repository</em>}' class.
+		 * The meta object literal for the '<em><b>Network Interfaces</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterfaceRepository()
 		 * @generated
 		 */
-		EClass ADAPTABLE_NETWORK_INTERFACE_REPOSITORY = eINSTANCE.getAdaptableNetworkInterfaceRepository();
+		EReference ADAPTATION_REPOSITORIES__NETWORK_INTERFACES = eINSTANCE.getAdaptationRepositories_NetworkInterfaces();
 
 		/**
-		 * The meta object literal for the '<em><b>Network Interfaces</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Network Interface Performances</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES = eINSTANCE.getAdaptableNetworkInterfaceRepository_NetworkInterfaces();
+		EReference ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES = eINSTANCE.getAdaptationRepositories_NetworkInterfacePerformances();
 
 		/**
-		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceRepositoryImpl <em>Adaptable Network Interface Performance Repository</em>}' class.
+		 * The meta object literal for the '<em><b>Links</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceRepositoryImpl
-		 * @see tools.descartes.dni.dnimm3ap.impl.DNIAPPackageImpl#getAdaptableNetworkInterfacePerformanceRepository()
 		 * @generated
 		 */
-		EClass ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY = eINSTANCE.getAdaptableNetworkInterfacePerformanceRepository();
+		EReference ADAPTATION_REPOSITORIES__LINKS = eINSTANCE.getAdaptationRepositories_Links();
 
 		/**
-		 * The meta object literal for the '<em><b>Network Interface Performance</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Link Performances</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE = eINSTANCE.getAdaptableNetworkInterfacePerformanceRepository_NetworkInterfacePerformance();
+		EReference ADAPTATION_REPOSITORIES__LINK_PERFORMANCES = eINSTANCE.getAdaptationRepositories_LinkPerformances();
 
 		/**
 		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity <em>IAdaptable Entity</em>}' class.
@@ -2956,12 +2320,20 @@ public interface DNIAPPackage extends EPackage {
 		EClass ADAPTATION_GROUPS = eINSTANCE.getAdaptationGroups();
 
 		/**
-		 * The meta object literal for the '<em><b>Groups</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Nodes</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTATION_GROUPS__NODES = eINSTANCE.getAdaptationGroups_Nodes();
+
+		/**
+		 * The meta object literal for the '<em><b>Links</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference ADAPTATION_GROUPS__GROUPS = eINSTANCE.getAdaptationGroups_Groups();
+		EReference ADAPTATION_GROUPS__LINKS = eINSTANCE.getAdaptationGroups_Links();
 
 		/**
 		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.IAdaptationGroup <em>IAdaptation Group</em>}' class.
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableEntityRepository.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableEntityRepository.java
deleted file mode 100644
index b884e59f2e4fe94d88306e7db30cb9d2eeb5e00e..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/IAdaptableEntityRepository.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>IAdaptable Entity Repository</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getIAdaptableEntityRepository()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface IAdaptableEntityRepository extends EObject {
-} // IAdaptableEntityRepository
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableEndPerformanceRepositoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableEndPerformanceRepositoryImpl.java
deleted file mode 100644
index 974dd115cc5fb1f64deb720a39c7741c84f7b192..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableEndPerformanceRepositoryImpl.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable End Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableEndPerformanceRepositoryImpl#getEndPerformance <em>End Performance</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableEndPerformanceRepositoryImpl extends MinimalEObjectImpl.Container implements AdaptableEndPerformanceRepository {
-	/**
-	 * The cached value of the '{@link #getEndPerformance() <em>End Performance</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEndPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableEndPerformance> endPerformance;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableEndPerformanceRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_END_PERFORMANCE_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<AdaptableEndPerformance> getEndPerformance() {
-		if (endPerformance == null) {
-			endPerformance = new EObjectContainmentEList<AdaptableEndPerformance>(AdaptableEndPerformance.class, this, DNIAPPackage.ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE);
-		}
-		return endPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE:
-				return ((InternalEList<?>)getEndPerformance()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE:
-				return getEndPerformance();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE:
-				getEndPerformance().clear();
-				getEndPerformance().addAll((Collection<? extends AdaptableEndPerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE:
-				getEndPerformance().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE:
-				return endPerformance != null && !endPerformance.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableEndPerformanceRepositoryImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableIntermediatePerformanceRepositoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableIntermediatePerformanceRepositoryImpl.java
deleted file mode 100644
index 8bc4527b1ec34af72cbc7814358f0d334ee8c8ea..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableIntermediatePerformanceRepositoryImpl.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Intermediate Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableIntermediatePerformanceRepositoryImpl#getIntermediatePerformance <em>Intermediate Performance</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableIntermediatePerformanceRepositoryImpl extends MinimalEObjectImpl.Container implements AdaptableIntermediatePerformanceRepository {
-	/**
-	 * The cached value of the '{@link #getIntermediatePerformance() <em>Intermediate Performance</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIntermediatePerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableIntermediatePerformance> intermediatePerformance;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableIntermediatePerformanceRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<AdaptableIntermediatePerformance> getIntermediatePerformance() {
-		if (intermediatePerformance == null) {
-			intermediatePerformance = new EObjectContainmentEList<AdaptableIntermediatePerformance>(AdaptableIntermediatePerformance.class, this, DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE);
-		}
-		return intermediatePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE:
-				return ((InternalEList<?>)getIntermediatePerformance()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE:
-				return getIntermediatePerformance();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE:
-				getIntermediatePerformance().clear();
-				getIntermediatePerformance().addAll((Collection<? extends AdaptableIntermediatePerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE:
-				getIntermediatePerformance().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE:
-				return intermediatePerformance != null && !intermediatePerformance.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableIntermediatePerformanceRepositoryImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkPerformanceRepositoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkPerformanceRepositoryImpl.java
deleted file mode 100644
index 6668c84d7ec80f8f70aea104d6566c670825b8b3..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkPerformanceRepositoryImpl.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Link Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkPerformanceRepositoryImpl#getLinkPerformance <em>Link Performance</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableLinkPerformanceRepositoryImpl extends MinimalEObjectImpl.Container implements AdaptableLinkPerformanceRepository {
-	/**
-	 * The cached value of the '{@link #getLinkPerformance() <em>Link Performance</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLinkPerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableLinkPerformance> linkPerformance;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableLinkPerformanceRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<AdaptableLinkPerformance> getLinkPerformance() {
-		if (linkPerformance == null) {
-			linkPerformance = new EObjectContainmentEList<AdaptableLinkPerformance>(AdaptableLinkPerformance.class, this, DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE);
-		}
-		return linkPerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE:
-				return ((InternalEList<?>)getLinkPerformance()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE:
-				return getLinkPerformance();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE:
-				getLinkPerformance().clear();
-				getLinkPerformance().addAll((Collection<? extends AdaptableLinkPerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE:
-				getLinkPerformance().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE:
-				return linkPerformance != null && !linkPerformance.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableLinkPerformanceRepositoryImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkRepositoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkRepositoryImpl.java
deleted file mode 100644
index 061542e2264dcdee273ecc880e2c922447fca717..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkRepositoryImpl.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptableLink;
-import tools.descartes.dni.dnimm3ap.AdaptableLinkRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Link Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkRepositoryImpl#getLink <em>Link</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableLinkRepositoryImpl extends MinimalEObjectImpl.Container implements AdaptableLinkRepository {
-	/**
-	 * The cached value of the '{@link #getLink() <em>Link</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLink()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableLink> link;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableLinkRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_LINK_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<AdaptableLink> getLink() {
-		if (link == null) {
-			link = new EObjectContainmentEList<AdaptableLink>(AdaptableLink.class, this, DNIAPPackage.ADAPTABLE_LINK_REPOSITORY__LINK);
-		}
-		return link;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_REPOSITORY__LINK:
-				return ((InternalEList<?>)getLink()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_REPOSITORY__LINK:
-				return getLink();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_REPOSITORY__LINK:
-				getLink().clear();
-				getLink().addAll((Collection<? extends AdaptableLink>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_REPOSITORY__LINK:
-				getLink().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_LINK_REPOSITORY__LINK:
-				return link != null && !link.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableLinkRepositoryImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfacePerformanceRepositoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfacePerformanceRepositoryImpl.java
deleted file mode 100644
index 6eff4de95b8a1d36d73d23025c1668b445361485..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfacePerformanceRepositoryImpl.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Network Interface Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceRepositoryImpl#getNetworkInterfacePerformance <em>Network Interface Performance</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableNetworkInterfacePerformanceRepositoryImpl extends MinimalEObjectImpl.Container implements AdaptableNetworkInterfacePerformanceRepository {
-	/**
-	 * The cached value of the '{@link #getNetworkInterfacePerformance() <em>Network Interface Performance</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNetworkInterfacePerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNetworkInterfacePerformance> networkInterfacePerformance;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNetworkInterfacePerformanceRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<AdaptableNetworkInterfacePerformance> getNetworkInterfacePerformance() {
-		if (networkInterfacePerformance == null) {
-			networkInterfacePerformance = new EObjectContainmentEList<AdaptableNetworkInterfacePerformance>(AdaptableNetworkInterfacePerformance.class, this, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE);
-		}
-		return networkInterfacePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE:
-				return ((InternalEList<?>)getNetworkInterfacePerformance()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE:
-				return getNetworkInterfacePerformance();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE:
-				getNetworkInterfacePerformance().clear();
-				getNetworkInterfacePerformance().addAll((Collection<? extends AdaptableNetworkInterfacePerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE:
-				getNetworkInterfacePerformance().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE:
-				return networkInterfacePerformance != null && !networkInterfacePerformance.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableNetworkInterfacePerformanceRepositoryImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceRepositoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceRepositoryImpl.java
deleted file mode 100644
index dfd884f65954cb366c00b1d38268aed7f65abe98..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceRepositoryImpl.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Network Interface Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceRepositoryImpl#getNetworkInterfaces <em>Network Interfaces</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableNetworkInterfaceRepositoryImpl extends MinimalEObjectImpl.Container implements AdaptableNetworkInterfaceRepository {
-	/**
-	 * The cached value of the '{@link #getNetworkInterfaces() <em>Network Interfaces</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNetworkInterfaces()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNetworkInterface> networkInterfaces;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNetworkInterfaceRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<AdaptableNetworkInterface> getNetworkInterfaces() {
-		if (networkInterfaces == null) {
-			networkInterfaces = new EObjectContainmentEList<AdaptableNetworkInterface>(AdaptableNetworkInterface.class, this, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES);
-		}
-		return networkInterfaces;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES:
-				return ((InternalEList<?>)getNetworkInterfaces()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES:
-				return getNetworkInterfaces();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES:
-				getNetworkInterfaces().clear();
-				getNetworkInterfaces().addAll((Collection<? extends AdaptableNetworkInterface>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES:
-				getNetworkInterfaces().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES:
-				return networkInterfaces != null && !networkInterfaces.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableNetworkInterfaceRepositoryImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeRepositoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeRepositoryImpl.java
deleted file mode 100644
index b051b78e3473a3633c7ac021a91cb9d0300c35c7..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeRepositoryImpl.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNode;
-import tools.descartes.dni.dnimm3ap.AdaptableNodeRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Node Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeRepositoryImpl#getNode <em>Node</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableNodeRepositoryImpl extends MinimalEObjectImpl.Container implements AdaptableNodeRepository {
-	/**
-	 * The cached value of the '{@link #getNode() <em>Node</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNode()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableNode> node;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNodeRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_NODE_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<AdaptableNode> getNode() {
-		if (node == null) {
-			node = new EObjectContainmentEList<AdaptableNode>(AdaptableNode.class, this, DNIAPPackage.ADAPTABLE_NODE_REPOSITORY__NODE);
-		}
-		return node;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE_REPOSITORY__NODE:
-				return ((InternalEList<?>)getNode()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE_REPOSITORY__NODE:
-				return getNode();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE_REPOSITORY__NODE:
-				getNode().clear();
-				getNode().addAll((Collection<? extends AdaptableNode>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE_REPOSITORY__NODE:
-				getNode().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_NODE_REPOSITORY__NODE:
-				return node != null && !node.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableNodeRepositoryImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceRepositoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceRepositoryImpl.java
deleted file mode 100644
index 03e6e03fc1a5eda939cc77a46e5f94115ea4b0b5..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceRepositoryImpl.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Adaptable Sdn Node Performance Repository</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceRepositoryImpl#getSdnNodePerformance <em>Sdn Node Performance</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AdaptableSdnNodePerformanceRepositoryImpl extends MinimalEObjectImpl.Container implements AdaptableSdnNodePerformanceRepository {
-	/**
-	 * The cached value of the '{@link #getSdnNodePerformance() <em>Sdn Node Performance</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSdnNodePerformance()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<AdaptableSdnNodePerformance> sdnNodePerformance;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableSdnNodePerformanceRepositoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return DNIAPPackage.Literals.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<AdaptableSdnNodePerformance> getSdnNodePerformance() {
-		if (sdnNodePerformance == null) {
-			sdnNodePerformance = new EObjectContainmentEList<AdaptableSdnNodePerformance>(AdaptableSdnNodePerformance.class, this, DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE);
-		}
-		return sdnNodePerformance;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE:
-				return ((InternalEList<?>)getSdnNodePerformance()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE:
-				return getSdnNodePerformance();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE:
-				getSdnNodePerformance().clear();
-				getSdnNodePerformance().addAll((Collection<? extends AdaptableSdnNodePerformance>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE:
-				getSdnNodePerformance().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE:
-				return sdnNodePerformance != null && !sdnNodePerformance.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AdaptableSdnNodePerformanceRepositoryImpl
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationGroupsImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationGroupsImpl.java
index 1fbe29ae6f5bfe5cf6d6b38da749c757a4c4d8b7..d0886fdc8594492ac8aa123857649e949605bfe6 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationGroupsImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationGroupsImpl.java
@@ -18,7 +18,8 @@ import org.eclipse.emf.ecore.util.InternalEList;
 
 import tools.descartes.dni.dnimm3ap.AdaptationGroups;
 import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-import tools.descartes.dni.dnimm3ap.IAdaptationGroup;
+import tools.descartes.dni.dnimm3ap.LinkAdaptationGroup;
+import tools.descartes.dni.dnimm3ap.NodeAdaptationGroup;
 
 /**
  * <!-- begin-user-doc -->
@@ -28,21 +29,32 @@ import tools.descartes.dni.dnimm3ap.IAdaptationGroup;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationGroupsImpl#getGroups <em>Groups</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationGroupsImpl#getNodes <em>Nodes</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationGroupsImpl#getLinks <em>Links</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class AdaptationGroupsImpl extends MinimalEObjectImpl.Container implements AdaptationGroups {
 	/**
-	 * The cached value of the '{@link #getGroups() <em>Groups</em>}' containment reference list.
+	 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getGroups()
+	 * @see #getNodes()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<IAdaptationGroup> groups;
+	protected EList<NodeAdaptationGroup> nodes;
+
+	/**
+	 * The cached value of the '{@link #getLinks() <em>Links</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinks()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<LinkAdaptationGroup> links;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -68,11 +80,23 @@ public class AdaptationGroupsImpl extends MinimalEObjectImpl.Container implement
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EList<IAdaptationGroup> getGroups() {
-		if (groups == null) {
-			groups = new EObjectContainmentEList<IAdaptationGroup>(IAdaptationGroup.class, this, DNIAPPackage.ADAPTATION_GROUPS__GROUPS);
+	public EList<NodeAdaptationGroup> getNodes() {
+		if (nodes == null) {
+			nodes = new EObjectContainmentEList<NodeAdaptationGroup>(NodeAdaptationGroup.class, this, DNIAPPackage.ADAPTATION_GROUPS__NODES);
 		}
-		return groups;
+		return nodes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<LinkAdaptationGroup> getLinks() {
+		if (links == null) {
+			links = new EObjectContainmentEList<LinkAdaptationGroup>(LinkAdaptationGroup.class, this, DNIAPPackage.ADAPTATION_GROUPS__LINKS);
+		}
+		return links;
 	}
 
 	/**
@@ -83,8 +107,10 @@ public class AdaptationGroupsImpl extends MinimalEObjectImpl.Container implement
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__GROUPS:
-				return ((InternalEList<?>)getGroups()).basicRemove(otherEnd, msgs);
+			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
+				return ((InternalEList<?>)getNodes()).basicRemove(otherEnd, msgs);
+			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
+				return ((InternalEList<?>)getLinks()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -97,8 +123,10 @@ public class AdaptationGroupsImpl extends MinimalEObjectImpl.Container implement
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__GROUPS:
-				return getGroups();
+			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
+				return getNodes();
+			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
+				return getLinks();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -112,9 +140,13 @@ public class AdaptationGroupsImpl extends MinimalEObjectImpl.Container implement
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__GROUPS:
-				getGroups().clear();
-				getGroups().addAll((Collection<? extends IAdaptationGroup>)newValue);
+			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
+				getNodes().clear();
+				getNodes().addAll((Collection<? extends NodeAdaptationGroup>)newValue);
+				return;
+			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
+				getLinks().clear();
+				getLinks().addAll((Collection<? extends LinkAdaptationGroup>)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -128,8 +160,11 @@ public class AdaptationGroupsImpl extends MinimalEObjectImpl.Container implement
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__GROUPS:
-				getGroups().clear();
+			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
+				getNodes().clear();
+				return;
+			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
+				getLinks().clear();
 				return;
 		}
 		super.eUnset(featureID);
@@ -143,8 +178,10 @@ public class AdaptationGroupsImpl extends MinimalEObjectImpl.Container implement
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_GROUPS__GROUPS:
-				return groups != null && !groups.isEmpty();
+			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
+				return nodes != null && !nodes.isEmpty();
+			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
+				return links != null && !links.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationPointsImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationPointsImpl.java
index efe3b4148ef82e3d8ebd323e098730d97ef01376..c23ddd8187dc94625f9dff67f55887670db17e6d 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationPointsImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationPointsImpl.java
@@ -4,13 +4,10 @@ package tools.descartes.dni.dnimm3ap.impl;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
-
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
-
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
 import tools.descartes.dni.dnimm3ap.AdaptationGroups;
 import tools.descartes.dni.dnimm3ap.AdaptationPoints;
 import tools.descartes.dni.dnimm3ap.AdaptationRepositories;
@@ -193,6 +190,7 @@ public class AdaptationPointsImpl extends MinimalEObjectImpl.Container implement
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationRepositoriesImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationRepositoriesImpl.java
index 9d7085b1fd64e05f16f4257276f9c0b9fcbe9639..b607f7fba950ebd1aa3a2e73e89b822f0d1da946 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationRepositoriesImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptationRepositoriesImpl.java
@@ -2,23 +2,28 @@
  */
 package tools.descartes.dni.dnimm3ap.impl;
 
-import org.eclipse.emf.common.notify.Notification;
+import java.util.Collection;
+
 import org.eclipse.emf.common.notify.NotificationChain;
 
+import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository;
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository;
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository;
-import tools.descartes.dni.dnimm3ap.AdaptableLinkRepository;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository;
-import tools.descartes.dni.dnimm3ap.AdaptableNodeRepository;
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import tools.descartes.dni.dnimm3ap.AdaptableEndPerformance;
+import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance;
+import tools.descartes.dni.dnimm3ap.AdaptableLink;
+import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance;
+import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface;
+import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance;
+import tools.descartes.dni.dnimm3ap.AdaptableNode;
+import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance;
 import tools.descartes.dni.dnimm3ap.AdaptationRepositories;
 import tools.descartes.dni.dnimm3ap.DNIAPPackage;
 
@@ -30,98 +35,98 @@ import tools.descartes.dni.dnimm3ap.DNIAPPackage;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getNodeRepository <em>Node Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getEndPerformanceRepository <em>End Performance Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getIntermediatePerformanceRepository <em>Intermediate Performance Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getSdnNodePerformanceRepository <em>Sdn Node Performance Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getNetworkInterfaceRepository <em>Network Interface Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getNetworkInterfacePerformanceRepository <em>Network Interface Performance Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getLinkRepository <em>Link Repository</em>}</li>
- *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getLinkPerformanceRepository <em>Link Performance Repository</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getNodes <em>Nodes</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getEndPerformances <em>End Performances</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getIntermediatePerformances <em>Intermediate Performances</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getSdnNodePerformances <em>Sdn Node Performances</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getNetworkInterfaces <em>Network Interfaces</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getNetworkInterfacePerformances <em>Network Interface Performances</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getLinks <em>Links</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptationRepositoriesImpl#getLinkPerformances <em>Link Performances</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container implements AdaptationRepositories {
 	/**
-	 * The cached value of the '{@link #getNodeRepository() <em>Node Repository</em>}' containment reference.
+	 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getNodeRepository()
+	 * @see #getNodes()
 	 * @generated
 	 * @ordered
 	 */
-	protected AdaptableNodeRepository nodeRepository;
+	protected EList<AdaptableNode> nodes;
 
 	/**
-	 * The cached value of the '{@link #getEndPerformanceRepository() <em>End Performance Repository</em>}' containment reference.
+	 * The cached value of the '{@link #getEndPerformances() <em>End Performances</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getEndPerformanceRepository()
+	 * @see #getEndPerformances()
 	 * @generated
 	 * @ordered
 	 */
-	protected AdaptableEndPerformanceRepository endPerformanceRepository;
+	protected EList<AdaptableEndPerformance> endPerformances;
 
 	/**
-	 * The cached value of the '{@link #getIntermediatePerformanceRepository() <em>Intermediate Performance Repository</em>}' containment reference.
+	 * The cached value of the '{@link #getIntermediatePerformances() <em>Intermediate Performances</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getIntermediatePerformanceRepository()
+	 * @see #getIntermediatePerformances()
 	 * @generated
 	 * @ordered
 	 */
-	protected AdaptableIntermediatePerformanceRepository intermediatePerformanceRepository;
+	protected EList<AdaptableIntermediatePerformance> intermediatePerformances;
 
 	/**
-	 * The cached value of the '{@link #getSdnNodePerformanceRepository() <em>Sdn Node Performance Repository</em>}' containment reference.
+	 * The cached value of the '{@link #getSdnNodePerformances() <em>Sdn Node Performances</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getSdnNodePerformanceRepository()
+	 * @see #getSdnNodePerformances()
 	 * @generated
 	 * @ordered
 	 */
-	protected AdaptableSdnNodePerformanceRepository sdnNodePerformanceRepository;
+	protected EList<AdaptableSdnNodePerformance> sdnNodePerformances;
 
 	/**
-	 * The cached value of the '{@link #getNetworkInterfaceRepository() <em>Network Interface Repository</em>}' containment reference.
+	 * The cached value of the '{@link #getNetworkInterfaces() <em>Network Interfaces</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getNetworkInterfaceRepository()
+	 * @see #getNetworkInterfaces()
 	 * @generated
 	 * @ordered
 	 */
-	protected AdaptableNetworkInterfaceRepository networkInterfaceRepository;
+	protected EList<AdaptableNetworkInterface> networkInterfaces;
 
 	/**
-	 * The cached value of the '{@link #getNetworkInterfacePerformanceRepository() <em>Network Interface Performance Repository</em>}' containment reference.
+	 * The cached value of the '{@link #getNetworkInterfacePerformances() <em>Network Interface Performances</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getNetworkInterfacePerformanceRepository()
+	 * @see #getNetworkInterfacePerformances()
 	 * @generated
 	 * @ordered
 	 */
-	protected AdaptableNetworkInterfacePerformanceRepository networkInterfacePerformanceRepository;
+	protected EList<AdaptableNetworkInterfacePerformance> networkInterfacePerformances;
 
 	/**
-	 * The cached value of the '{@link #getLinkRepository() <em>Link Repository</em>}' containment reference.
+	 * The cached value of the '{@link #getLinks() <em>Links</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getLinkRepository()
+	 * @see #getLinks()
 	 * @generated
 	 * @ordered
 	 */
-	protected AdaptableLinkRepository linkRepository;
+	protected EList<AdaptableLink> links;
 
 	/**
-	 * The cached value of the '{@link #getLinkPerformanceRepository() <em>Link Performance Repository</em>}' containment reference.
+	 * The cached value of the '{@link #getLinkPerformances() <em>Link Performances</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getLinkPerformanceRepository()
+	 * @see #getLinkPerformances()
 	 * @generated
 	 * @ordered
 	 */
-	protected AdaptableLinkPerformanceRepository linkPerformanceRepository;
+	protected EList<AdaptableLinkPerformance> linkPerformances;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -147,137 +152,11 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AdaptableNodeRepository getNodeRepository() {
-		return nodeRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetNodeRepository(AdaptableNodeRepository newNodeRepository, NotificationChain msgs) {
-		AdaptableNodeRepository oldNodeRepository = nodeRepository;
-		nodeRepository = newNodeRepository;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY, oldNodeRepository, newNodeRepository);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNodeRepository(AdaptableNodeRepository newNodeRepository) {
-		if (newNodeRepository != nodeRepository) {
-			NotificationChain msgs = null;
-			if (nodeRepository != null)
-				msgs = ((InternalEObject)nodeRepository).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY, null, msgs);
-			if (newNodeRepository != null)
-				msgs = ((InternalEObject)newNodeRepository).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY, null, msgs);
-			msgs = basicSetNodeRepository(newNodeRepository, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY, newNodeRepository, newNodeRepository));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableEndPerformanceRepository getEndPerformanceRepository() {
-		return endPerformanceRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetEndPerformanceRepository(AdaptableEndPerformanceRepository newEndPerformanceRepository, NotificationChain msgs) {
-		AdaptableEndPerformanceRepository oldEndPerformanceRepository = endPerformanceRepository;
-		endPerformanceRepository = newEndPerformanceRepository;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY, oldEndPerformanceRepository, newEndPerformanceRepository);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEndPerformanceRepository(AdaptableEndPerformanceRepository newEndPerformanceRepository) {
-		if (newEndPerformanceRepository != endPerformanceRepository) {
-			NotificationChain msgs = null;
-			if (endPerformanceRepository != null)
-				msgs = ((InternalEObject)endPerformanceRepository).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY, null, msgs);
-			if (newEndPerformanceRepository != null)
-				msgs = ((InternalEObject)newEndPerformanceRepository).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY, null, msgs);
-			msgs = basicSetEndPerformanceRepository(newEndPerformanceRepository, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY, newEndPerformanceRepository, newEndPerformanceRepository));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableIntermediatePerformanceRepository getIntermediatePerformanceRepository() {
-		return intermediatePerformanceRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetIntermediatePerformanceRepository(AdaptableIntermediatePerformanceRepository newIntermediatePerformanceRepository, NotificationChain msgs) {
-		AdaptableIntermediatePerformanceRepository oldIntermediatePerformanceRepository = intermediatePerformanceRepository;
-		intermediatePerformanceRepository = newIntermediatePerformanceRepository;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY, oldIntermediatePerformanceRepository, newIntermediatePerformanceRepository);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setIntermediatePerformanceRepository(AdaptableIntermediatePerformanceRepository newIntermediatePerformanceRepository) {
-		if (newIntermediatePerformanceRepository != intermediatePerformanceRepository) {
-			NotificationChain msgs = null;
-			if (intermediatePerformanceRepository != null)
-				msgs = ((InternalEObject)intermediatePerformanceRepository).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY, null, msgs);
-			if (newIntermediatePerformanceRepository != null)
-				msgs = ((InternalEObject)newIntermediatePerformanceRepository).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY, null, msgs);
-			msgs = basicSetIntermediatePerformanceRepository(newIntermediatePerformanceRepository, msgs);
-			if (msgs != null) msgs.dispatch();
+	public EList<AdaptableNode> getNodes() {
+		if (nodes == null) {
+			nodes = new EObjectContainmentEList<AdaptableNode>(AdaptableNode.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__NODES);
 		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY, newIntermediatePerformanceRepository, newIntermediatePerformanceRepository));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableSdnNodePerformanceRepository getSdnNodePerformanceRepository() {
-		return sdnNodePerformanceRepository;
+		return nodes;
 	}
 
 	/**
@@ -285,14 +164,11 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetSdnNodePerformanceRepository(AdaptableSdnNodePerformanceRepository newSdnNodePerformanceRepository, NotificationChain msgs) {
-		AdaptableSdnNodePerformanceRepository oldSdnNodePerformanceRepository = sdnNodePerformanceRepository;
-		sdnNodePerformanceRepository = newSdnNodePerformanceRepository;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY, oldSdnNodePerformanceRepository, newSdnNodePerformanceRepository);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
+	public EList<AdaptableEndPerformance> getEndPerformances() {
+		if (endPerformances == null) {
+			endPerformances = new EObjectContainmentEList<AdaptableEndPerformance>(AdaptableEndPerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES);
 		}
-		return msgs;
+		return endPerformances;
 	}
 
 	/**
@@ -300,27 +176,11 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setSdnNodePerformanceRepository(AdaptableSdnNodePerformanceRepository newSdnNodePerformanceRepository) {
-		if (newSdnNodePerformanceRepository != sdnNodePerformanceRepository) {
-			NotificationChain msgs = null;
-			if (sdnNodePerformanceRepository != null)
-				msgs = ((InternalEObject)sdnNodePerformanceRepository).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY, null, msgs);
-			if (newSdnNodePerformanceRepository != null)
-				msgs = ((InternalEObject)newSdnNodePerformanceRepository).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY, null, msgs);
-			msgs = basicSetSdnNodePerformanceRepository(newSdnNodePerformanceRepository, msgs);
-			if (msgs != null) msgs.dispatch();
+	public EList<AdaptableIntermediatePerformance> getIntermediatePerformances() {
+		if (intermediatePerformances == null) {
+			intermediatePerformances = new EObjectContainmentEList<AdaptableIntermediatePerformance>(AdaptableIntermediatePerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES);
 		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY, newSdnNodePerformanceRepository, newSdnNodePerformanceRepository));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterfaceRepository getNetworkInterfaceRepository() {
-		return networkInterfaceRepository;
+		return intermediatePerformances;
 	}
 
 	/**
@@ -328,42 +188,11 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetNetworkInterfaceRepository(AdaptableNetworkInterfaceRepository newNetworkInterfaceRepository, NotificationChain msgs) {
-		AdaptableNetworkInterfaceRepository oldNetworkInterfaceRepository = networkInterfaceRepository;
-		networkInterfaceRepository = newNetworkInterfaceRepository;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY, oldNetworkInterfaceRepository, newNetworkInterfaceRepository);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
+	public EList<AdaptableSdnNodePerformance> getSdnNodePerformances() {
+		if (sdnNodePerformances == null) {
+			sdnNodePerformances = new EObjectContainmentEList<AdaptableSdnNodePerformance>(AdaptableSdnNodePerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES);
 		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNetworkInterfaceRepository(AdaptableNetworkInterfaceRepository newNetworkInterfaceRepository) {
-		if (newNetworkInterfaceRepository != networkInterfaceRepository) {
-			NotificationChain msgs = null;
-			if (networkInterfaceRepository != null)
-				msgs = ((InternalEObject)networkInterfaceRepository).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY, null, msgs);
-			if (newNetworkInterfaceRepository != null)
-				msgs = ((InternalEObject)newNetworkInterfaceRepository).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY, null, msgs);
-			msgs = basicSetNetworkInterfaceRepository(newNetworkInterfaceRepository, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY, newNetworkInterfaceRepository, newNetworkInterfaceRepository));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterfacePerformanceRepository getNetworkInterfacePerformanceRepository() {
-		return networkInterfacePerformanceRepository;
+		return sdnNodePerformances;
 	}
 
 	/**
@@ -371,14 +200,11 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetNetworkInterfacePerformanceRepository(AdaptableNetworkInterfacePerformanceRepository newNetworkInterfacePerformanceRepository, NotificationChain msgs) {
-		AdaptableNetworkInterfacePerformanceRepository oldNetworkInterfacePerformanceRepository = networkInterfacePerformanceRepository;
-		networkInterfacePerformanceRepository = newNetworkInterfacePerformanceRepository;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY, oldNetworkInterfacePerformanceRepository, newNetworkInterfacePerformanceRepository);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
+	public EList<AdaptableNetworkInterface> getNetworkInterfaces() {
+		if (networkInterfaces == null) {
+			networkInterfaces = new EObjectContainmentEList<AdaptableNetworkInterface>(AdaptableNetworkInterface.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES);
 		}
-		return msgs;
+		return networkInterfaces;
 	}
 
 	/**
@@ -386,70 +212,11 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setNetworkInterfacePerformanceRepository(AdaptableNetworkInterfacePerformanceRepository newNetworkInterfacePerformanceRepository) {
-		if (newNetworkInterfacePerformanceRepository != networkInterfacePerformanceRepository) {
-			NotificationChain msgs = null;
-			if (networkInterfacePerformanceRepository != null)
-				msgs = ((InternalEObject)networkInterfacePerformanceRepository).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY, null, msgs);
-			if (newNetworkInterfacePerformanceRepository != null)
-				msgs = ((InternalEObject)newNetworkInterfacePerformanceRepository).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY, null, msgs);
-			msgs = basicSetNetworkInterfacePerformanceRepository(newNetworkInterfacePerformanceRepository, msgs);
-			if (msgs != null) msgs.dispatch();
+	public EList<AdaptableNetworkInterfacePerformance> getNetworkInterfacePerformances() {
+		if (networkInterfacePerformances == null) {
+			networkInterfacePerformances = new EObjectContainmentEList<AdaptableNetworkInterfacePerformance>(AdaptableNetworkInterfacePerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES);
 		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY, newNetworkInterfacePerformanceRepository, newNetworkInterfacePerformanceRepository));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLinkRepository getLinkRepository() {
-		return linkRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetLinkRepository(AdaptableLinkRepository newLinkRepository, NotificationChain msgs) {
-		AdaptableLinkRepository oldLinkRepository = linkRepository;
-		linkRepository = newLinkRepository;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY, oldLinkRepository, newLinkRepository);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setLinkRepository(AdaptableLinkRepository newLinkRepository) {
-		if (newLinkRepository != linkRepository) {
-			NotificationChain msgs = null;
-			if (linkRepository != null)
-				msgs = ((InternalEObject)linkRepository).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY, null, msgs);
-			if (newLinkRepository != null)
-				msgs = ((InternalEObject)newLinkRepository).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY, null, msgs);
-			msgs = basicSetLinkRepository(newLinkRepository, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY, newLinkRepository, newLinkRepository));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLinkPerformanceRepository getLinkPerformanceRepository() {
-		return linkPerformanceRepository;
+		return networkInterfacePerformances;
 	}
 
 	/**
@@ -457,14 +224,11 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetLinkPerformanceRepository(AdaptableLinkPerformanceRepository newLinkPerformanceRepository, NotificationChain msgs) {
-		AdaptableLinkPerformanceRepository oldLinkPerformanceRepository = linkPerformanceRepository;
-		linkPerformanceRepository = newLinkPerformanceRepository;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY, oldLinkPerformanceRepository, newLinkPerformanceRepository);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
+	public EList<AdaptableLink> getLinks() {
+		if (links == null) {
+			links = new EObjectContainmentEList<AdaptableLink>(AdaptableLink.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS);
 		}
-		return msgs;
+		return links;
 	}
 
 	/**
@@ -472,18 +236,11 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setLinkPerformanceRepository(AdaptableLinkPerformanceRepository newLinkPerformanceRepository) {
-		if (newLinkPerformanceRepository != linkPerformanceRepository) {
-			NotificationChain msgs = null;
-			if (linkPerformanceRepository != null)
-				msgs = ((InternalEObject)linkPerformanceRepository).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY, null, msgs);
-			if (newLinkPerformanceRepository != null)
-				msgs = ((InternalEObject)newLinkPerformanceRepository).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY, null, msgs);
-			msgs = basicSetLinkPerformanceRepository(newLinkPerformanceRepository, msgs);
-			if (msgs != null) msgs.dispatch();
+	public EList<AdaptableLinkPerformance> getLinkPerformances() {
+		if (linkPerformances == null) {
+			linkPerformances = new EObjectContainmentEList<AdaptableLinkPerformance>(AdaptableLinkPerformance.class, this, DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES);
 		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY, newLinkPerformanceRepository, newLinkPerformanceRepository));
+		return linkPerformances;
 	}
 
 	/**
@@ -494,22 +251,22 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY:
-				return basicSetNodeRepository(null, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY:
-				return basicSetEndPerformanceRepository(null, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY:
-				return basicSetIntermediatePerformanceRepository(null, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY:
-				return basicSetSdnNodePerformanceRepository(null, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY:
-				return basicSetNetworkInterfaceRepository(null, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY:
-				return basicSetNetworkInterfacePerformanceRepository(null, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY:
-				return basicSetLinkRepository(null, msgs);
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY:
-				return basicSetLinkPerformanceRepository(null, msgs);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
+				return ((InternalEList<?>)getNodes()).basicRemove(otherEnd, msgs);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
+				return ((InternalEList<?>)getEndPerformances()).basicRemove(otherEnd, msgs);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
+				return ((InternalEList<?>)getIntermediatePerformances()).basicRemove(otherEnd, msgs);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
+				return ((InternalEList<?>)getSdnNodePerformances()).basicRemove(otherEnd, msgs);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
+				return ((InternalEList<?>)getNetworkInterfaces()).basicRemove(otherEnd, msgs);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
+				return ((InternalEList<?>)getNetworkInterfacePerformances()).basicRemove(otherEnd, msgs);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
+				return ((InternalEList<?>)getLinks()).basicRemove(otherEnd, msgs);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
+				return ((InternalEList<?>)getLinkPerformances()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -522,22 +279,22 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY:
-				return getNodeRepository();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY:
-				return getEndPerformanceRepository();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY:
-				return getIntermediatePerformanceRepository();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY:
-				return getSdnNodePerformanceRepository();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY:
-				return getNetworkInterfaceRepository();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY:
-				return getNetworkInterfacePerformanceRepository();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY:
-				return getLinkRepository();
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY:
-				return getLinkPerformanceRepository();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
+				return getNodes();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
+				return getEndPerformances();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
+				return getIntermediatePerformances();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
+				return getSdnNodePerformances();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
+				return getNetworkInterfaces();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
+				return getNetworkInterfacePerformances();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
+				return getLinks();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
+				return getLinkPerformances();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -547,32 +304,41 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY:
-				setNodeRepository((AdaptableNodeRepository)newValue);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
+				getNodes().clear();
+				getNodes().addAll((Collection<? extends AdaptableNode>)newValue);
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY:
-				setEndPerformanceRepository((AdaptableEndPerformanceRepository)newValue);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
+				getEndPerformances().clear();
+				getEndPerformances().addAll((Collection<? extends AdaptableEndPerformance>)newValue);
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY:
-				setIntermediatePerformanceRepository((AdaptableIntermediatePerformanceRepository)newValue);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
+				getIntermediatePerformances().clear();
+				getIntermediatePerformances().addAll((Collection<? extends AdaptableIntermediatePerformance>)newValue);
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY:
-				setSdnNodePerformanceRepository((AdaptableSdnNodePerformanceRepository)newValue);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
+				getSdnNodePerformances().clear();
+				getSdnNodePerformances().addAll((Collection<? extends AdaptableSdnNodePerformance>)newValue);
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY:
-				setNetworkInterfaceRepository((AdaptableNetworkInterfaceRepository)newValue);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
+				getNetworkInterfaces().clear();
+				getNetworkInterfaces().addAll((Collection<? extends AdaptableNetworkInterface>)newValue);
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY:
-				setNetworkInterfacePerformanceRepository((AdaptableNetworkInterfacePerformanceRepository)newValue);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
+				getNetworkInterfacePerformances().clear();
+				getNetworkInterfacePerformances().addAll((Collection<? extends AdaptableNetworkInterfacePerformance>)newValue);
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY:
-				setLinkRepository((AdaptableLinkRepository)newValue);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
+				getLinks().clear();
+				getLinks().addAll((Collection<? extends AdaptableLink>)newValue);
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY:
-				setLinkPerformanceRepository((AdaptableLinkPerformanceRepository)newValue);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
+				getLinkPerformances().clear();
+				getLinkPerformances().addAll((Collection<? extends AdaptableLinkPerformance>)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -586,29 +352,29 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY:
-				setNodeRepository((AdaptableNodeRepository)null);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
+				getNodes().clear();
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY:
-				setEndPerformanceRepository((AdaptableEndPerformanceRepository)null);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
+				getEndPerformances().clear();
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY:
-				setIntermediatePerformanceRepository((AdaptableIntermediatePerformanceRepository)null);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
+				getIntermediatePerformances().clear();
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY:
-				setSdnNodePerformanceRepository((AdaptableSdnNodePerformanceRepository)null);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
+				getSdnNodePerformances().clear();
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY:
-				setNetworkInterfaceRepository((AdaptableNetworkInterfaceRepository)null);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
+				getNetworkInterfaces().clear();
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY:
-				setNetworkInterfacePerformanceRepository((AdaptableNetworkInterfacePerformanceRepository)null);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
+				getNetworkInterfacePerformances().clear();
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY:
-				setLinkRepository((AdaptableLinkRepository)null);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
+				getLinks().clear();
 				return;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY:
-				setLinkPerformanceRepository((AdaptableLinkPerformanceRepository)null);
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
+				getLinkPerformances().clear();
 				return;
 		}
 		super.eUnset(featureID);
@@ -622,22 +388,22 @@ public class AdaptationRepositoriesImpl extends MinimalEObjectImpl.Container imp
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY:
-				return nodeRepository != null;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY:
-				return endPerformanceRepository != null;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY:
-				return intermediatePerformanceRepository != null;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY:
-				return sdnNodePerformanceRepository != null;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY:
-				return networkInterfaceRepository != null;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY:
-				return networkInterfacePerformanceRepository != null;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY:
-				return linkRepository != null;
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY:
-				return linkPerformanceRepository != null;
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
+				return nodes != null && !nodes.isEmpty();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
+				return endPerformances != null && !endPerformances.isEmpty();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
+				return intermediatePerformances != null && !intermediatePerformances.isEmpty();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
+				return sdnNodePerformances != null && !sdnNodePerformances.isEmpty();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
+				return networkInterfaces != null && !networkInterfaces.isEmpty();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
+				return networkInterfacePerformances != null && !networkInterfacePerformances.isEmpty();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
+				return links != null && !links.isEmpty();
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
+				return linkPerformances != null && !linkPerformances.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPFactoryImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPFactoryImpl.java
index f4104ee6a6fef2d321b2367c862ed1eb25a3835b..8bbbd593106910e4d125ec81ac2e43f7ee42008e 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPFactoryImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPFactoryImpl.java
@@ -58,14 +58,6 @@ public class DNIAPFactoryImpl extends EFactoryImpl implements DNIAPFactory {
 		switch (eClass.getClassifierID()) {
 			case DNIAPPackage.ADAPTATION_POINTS: return createAdaptationPoints();
 			case DNIAPPackage.ADAPTATION_REPOSITORIES: return createAdaptationRepositories();
-			case DNIAPPackage.ADAPTABLE_NODE_REPOSITORY: return createAdaptableNodeRepository();
-			case DNIAPPackage.ADAPTABLE_LINK_REPOSITORY: return createAdaptableLinkRepository();
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY: return createAdaptableLinkPerformanceRepository();
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE_REPOSITORY: return createAdaptableEndPerformanceRepository();
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY: return createAdaptableIntermediatePerformanceRepository();
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY: return createAdaptableSdnNodePerformanceRepository();
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY: return createAdaptableNetworkInterfaceRepository();
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY: return createAdaptableNetworkInterfacePerformanceRepository();
 			case DNIAPPackage.ADAPTABLE_NODE: return createAdaptableNode();
 			case DNIAPPackage.ADAPTABLE_LINK: return createAdaptableLink();
 			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE: return createAdaptableLinkPerformance();
@@ -104,86 +96,6 @@ public class DNIAPFactoryImpl extends EFactoryImpl implements DNIAPFactory {
 		return adaptationRepositories;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNodeRepository createAdaptableNodeRepository() {
-		AdaptableNodeRepositoryImpl adaptableNodeRepository = new AdaptableNodeRepositoryImpl();
-		return adaptableNodeRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLinkRepository createAdaptableLinkRepository() {
-		AdaptableLinkRepositoryImpl adaptableLinkRepository = new AdaptableLinkRepositoryImpl();
-		return adaptableLinkRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLinkPerformanceRepository createAdaptableLinkPerformanceRepository() {
-		AdaptableLinkPerformanceRepositoryImpl adaptableLinkPerformanceRepository = new AdaptableLinkPerformanceRepositoryImpl();
-		return adaptableLinkPerformanceRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableEndPerformanceRepository createAdaptableEndPerformanceRepository() {
-		AdaptableEndPerformanceRepositoryImpl adaptableEndPerformanceRepository = new AdaptableEndPerformanceRepositoryImpl();
-		return adaptableEndPerformanceRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableIntermediatePerformanceRepository createAdaptableIntermediatePerformanceRepository() {
-		AdaptableIntermediatePerformanceRepositoryImpl adaptableIntermediatePerformanceRepository = new AdaptableIntermediatePerformanceRepositoryImpl();
-		return adaptableIntermediatePerformanceRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableSdnNodePerformanceRepository createAdaptableSdnNodePerformanceRepository() {
-		AdaptableSdnNodePerformanceRepositoryImpl adaptableSdnNodePerformanceRepository = new AdaptableSdnNodePerformanceRepositoryImpl();
-		return adaptableSdnNodePerformanceRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterfaceRepository createAdaptableNetworkInterfaceRepository() {
-		AdaptableNetworkInterfaceRepositoryImpl adaptableNetworkInterfaceRepository = new AdaptableNetworkInterfaceRepositoryImpl();
-		return adaptableNetworkInterfaceRepository;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterfacePerformanceRepository createAdaptableNetworkInterfacePerformanceRepository() {
-		AdaptableNetworkInterfacePerformanceRepositoryImpl adaptableNetworkInterfacePerformanceRepository = new AdaptableNetworkInterfacePerformanceRepositoryImpl();
-		return adaptableNetworkInterfacePerformanceRepository;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
index 8d89473d8227a9516eb7fac16fb4e76c82dc9c62..4bcf2bfef97b7cb7a7190c190eb55cb6bf9146fd 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
@@ -15,21 +15,13 @@ import org.eclipse.emf.ecore.impl.EPackageImpl;
 import tools.descartes.dni.dnimm3.DNIPackage;
 
 import tools.descartes.dni.dnimm3ap.AdaptableEndPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository;
 import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository;
 import tools.descartes.dni.dnimm3ap.AdaptableLink;
 import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository;
-import tools.descartes.dni.dnimm3ap.AdaptableLinkRepository;
 import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface;
 import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository;
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository;
 import tools.descartes.dni.dnimm3ap.AdaptableNode;
-import tools.descartes.dni.dnimm3ap.AdaptableNodeRepository;
 import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance;
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository;
 import tools.descartes.dni.dnimm3ap.AdaptationGroups;
 import tools.descartes.dni.dnimm3ap.AdaptationPoints;
 import tools.descartes.dni.dnimm3ap.AdaptationRepositories;
@@ -41,7 +33,6 @@ import tools.descartes.dni.dnimm3ap.AlternativeVariableSet;
 import tools.descartes.dni.dnimm3ap.DNIAPFactory;
 import tools.descartes.dni.dnimm3ap.DNIAPPackage;
 import tools.descartes.dni.dnimm3ap.IAdaptableEntity;
-import tools.descartes.dni.dnimm3ap.IAdaptableEntityRepository;
 import tools.descartes.dni.dnimm3ap.IAdaptableGroupableEntity;
 import tools.descartes.dni.dnimm3ap.IAdaptationGroup;
 import tools.descartes.dni.dnimm3ap.LinkAdaptationGroup;
@@ -68,69 +59,6 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 */
 	private EClass adaptationRepositoriesEClass = null;
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass iAdaptableEntityRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableNodeRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableLinkRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableLinkPerformanceRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableEndPerformanceRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableIntermediatePerformanceRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableSdnNodePerformanceRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableNetworkInterfaceRepositoryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass adaptableNetworkInterfacePerformanceRepositoryEClass = null;
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -370,7 +298,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptationRepositories_NodeRepository() {
+	public EReference getAdaptationRepositories_Nodes() {
 		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -379,7 +307,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptationRepositories_EndPerformanceRepository() {
+	public EReference getAdaptationRepositories_EndPerformances() {
 		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -388,7 +316,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptationRepositories_IntermediatePerformanceRepository() {
+	public EReference getAdaptationRepositories_IntermediatePerformances() {
 		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -397,7 +325,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptationRepositories_SdnNodePerformanceRepository() {
+	public EReference getAdaptationRepositories_SdnNodePerformances() {
 		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -406,7 +334,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptationRepositories_NetworkInterfaceRepository() {
+	public EReference getAdaptationRepositories_NetworkInterfaces() {
 		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(4);
 	}
 
@@ -415,7 +343,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptationRepositories_NetworkInterfacePerformanceRepository() {
+	public EReference getAdaptationRepositories_NetworkInterfacePerformances() {
 		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(5);
 	}
 
@@ -424,7 +352,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptationRepositories_LinkRepository() {
+	public EReference getAdaptationRepositories_Links() {
 		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(6);
 	}
 
@@ -433,163 +361,10 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptationRepositories_LinkPerformanceRepository() {
+	public EReference getAdaptationRepositories_LinkPerformances() {
 		return (EReference)adaptationRepositoriesEClass.getEStructuralFeatures().get(7);
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIAdaptableEntityRepository() {
-		return iAdaptableEntityRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableNodeRepository() {
-		return adaptableNodeRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNodeRepository_Node() {
-		return (EReference)adaptableNodeRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableLinkRepository() {
-		return adaptableLinkRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableLinkRepository_Link() {
-		return (EReference)adaptableLinkRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableLinkPerformanceRepository() {
-		return adaptableLinkPerformanceRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableLinkPerformanceRepository_LinkPerformance() {
-		return (EReference)adaptableLinkPerformanceRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableEndPerformanceRepository() {
-		return adaptableEndPerformanceRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableEndPerformanceRepository_EndPerformance() {
-		return (EReference)adaptableEndPerformanceRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableIntermediatePerformanceRepository() {
-		return adaptableIntermediatePerformanceRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableIntermediatePerformanceRepository_IntermediatePerformance() {
-		return (EReference)adaptableIntermediatePerformanceRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableSdnNodePerformanceRepository() {
-		return adaptableSdnNodePerformanceRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableSdnNodePerformanceRepository_SdnNodePerformance() {
-		return (EReference)adaptableSdnNodePerformanceRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableNetworkInterfaceRepository() {
-		return adaptableNetworkInterfaceRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNetworkInterfaceRepository_NetworkInterfaces() {
-		return (EReference)adaptableNetworkInterfaceRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAdaptableNetworkInterfacePerformanceRepository() {
-		return adaptableNetworkInterfacePerformanceRepositoryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAdaptableNetworkInterfacePerformanceRepository_NetworkInterfacePerformance() {
-		return (EReference)adaptableNetworkInterfacePerformanceRepositoryEClass.getEStructuralFeatures().get(0);
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -946,10 +721,19 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptationGroups_Groups() {
+	public EReference getAdaptationGroups_Nodes() {
 		return (EReference)adaptationGroupsEClass.getEStructuralFeatures().get(0);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptationGroups_Links() {
+		return (EReference)adaptationGroupsEClass.getEStructuralFeatures().get(1);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1082,40 +866,14 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		createEReference(adaptationPointsEClass, ADAPTATION_POINTS__GROUPS);
 
 		adaptationRepositoriesEClass = createEClass(ADAPTATION_REPOSITORIES);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__NODE_REPOSITORY);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__LINK_REPOSITORY);
-		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY);
-
-		iAdaptableEntityRepositoryEClass = createEClass(IADAPTABLE_ENTITY_REPOSITORY);
-
-		adaptableNodeRepositoryEClass = createEClass(ADAPTABLE_NODE_REPOSITORY);
-		createEReference(adaptableNodeRepositoryEClass, ADAPTABLE_NODE_REPOSITORY__NODE);
-
-		adaptableLinkRepositoryEClass = createEClass(ADAPTABLE_LINK_REPOSITORY);
-		createEReference(adaptableLinkRepositoryEClass, ADAPTABLE_LINK_REPOSITORY__LINK);
-
-		adaptableLinkPerformanceRepositoryEClass = createEClass(ADAPTABLE_LINK_PERFORMANCE_REPOSITORY);
-		createEReference(adaptableLinkPerformanceRepositoryEClass, ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE);
-
-		adaptableEndPerformanceRepositoryEClass = createEClass(ADAPTABLE_END_PERFORMANCE_REPOSITORY);
-		createEReference(adaptableEndPerformanceRepositoryEClass, ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE);
-
-		adaptableIntermediatePerformanceRepositoryEClass = createEClass(ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY);
-		createEReference(adaptableIntermediatePerformanceRepositoryEClass, ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE);
-
-		adaptableSdnNodePerformanceRepositoryEClass = createEClass(ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY);
-		createEReference(adaptableSdnNodePerformanceRepositoryEClass, ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE);
-
-		adaptableNetworkInterfaceRepositoryEClass = createEClass(ADAPTABLE_NETWORK_INTERFACE_REPOSITORY);
-		createEReference(adaptableNetworkInterfaceRepositoryEClass, ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES);
-
-		adaptableNetworkInterfacePerformanceRepositoryEClass = createEClass(ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY);
-		createEReference(adaptableNetworkInterfacePerformanceRepositoryEClass, ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE);
+		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__NODES);
+		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__END_PERFORMANCES);
+		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES);
+		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES);
+		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__NETWORK_INTERFACES);
+		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES);
+		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__LINKS);
+		createEReference(adaptationRepositoriesEClass, ADAPTATION_REPOSITORIES__LINK_PERFORMANCES);
 
 		iAdaptableEntityEClass = createEClass(IADAPTABLE_ENTITY);
 		createEReference(iAdaptableEntityEClass, IADAPTABLE_ENTITY__ENTITY_TYPE);
@@ -1166,7 +924,8 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		createEReference(adaptableNetworkInterfacePerformanceEClass, ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__INTERFACE_THROUGHPUT);
 
 		adaptationGroupsEClass = createEClass(ADAPTATION_GROUPS);
-		createEReference(adaptationGroupsEClass, ADAPTATION_GROUPS__GROUPS);
+		createEReference(adaptationGroupsEClass, ADAPTATION_GROUPS__NODES);
+		createEReference(adaptationGroupsEClass, ADAPTATION_GROUPS__LINKS);
 
 		iAdaptationGroupEClass = createEClass(IADAPTATION_GROUP);
 
@@ -1224,14 +983,6 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		iAdaptableEntityEClass_T.getEBounds().add(g1);
 
 		// Add supertypes to classes
-		adaptableNodeRepositoryEClass.getESuperTypes().add(this.getIAdaptableEntityRepository());
-		adaptableLinkRepositoryEClass.getESuperTypes().add(this.getIAdaptableEntityRepository());
-		adaptableLinkPerformanceRepositoryEClass.getESuperTypes().add(this.getIAdaptableEntityRepository());
-		adaptableEndPerformanceRepositoryEClass.getESuperTypes().add(this.getIAdaptableEntityRepository());
-		adaptableIntermediatePerformanceRepositoryEClass.getESuperTypes().add(this.getIAdaptableEntityRepository());
-		adaptableSdnNodePerformanceRepositoryEClass.getESuperTypes().add(this.getIAdaptableEntityRepository());
-		adaptableNetworkInterfaceRepositoryEClass.getESuperTypes().add(this.getIAdaptableEntityRepository());
-		adaptableNetworkInterfacePerformanceRepositoryEClass.getESuperTypes().add(this.getIAdaptableEntityRepository());
 		g1 = createEGenericType(this.getIAdaptableEntity());
 		EGenericType g2 = createEGenericType(theDNIPackage.getNodeType());
 		g1.getETypeArguments().add(g2);
@@ -1290,40 +1041,14 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		initEReference(getAdaptationPoints_Groups(), this.getAdaptationGroups(), null, "groups", null, 0, 1, AdaptationPoints.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(adaptationRepositoriesEClass, AdaptationRepositories.class, "AdaptationRepositories", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptationRepositories_NodeRepository(), this.getAdaptableNodeRepository(), null, "nodeRepository", null, 0, 1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_EndPerformanceRepository(), this.getAdaptableEndPerformanceRepository(), null, "endPerformanceRepository", null, 0, 1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_IntermediatePerformanceRepository(), this.getAdaptableIntermediatePerformanceRepository(), null, "intermediatePerformanceRepository", null, 0, 1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_SdnNodePerformanceRepository(), this.getAdaptableSdnNodePerformanceRepository(), null, "sdnNodePerformanceRepository", null, 0, 1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_NetworkInterfaceRepository(), this.getAdaptableNetworkInterfaceRepository(), null, "networkInterfaceRepository", null, 0, 1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_NetworkInterfacePerformanceRepository(), this.getAdaptableNetworkInterfacePerformanceRepository(), null, "networkInterfacePerformanceRepository", null, 0, 1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_LinkRepository(), this.getAdaptableLinkRepository(), null, "linkRepository", null, 0, 1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationRepositories_LinkPerformanceRepository(), this.getAdaptableLinkPerformanceRepository(), null, "linkPerformanceRepository", null, 0, 1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(iAdaptableEntityRepositoryEClass, IAdaptableEntityRepository.class, "IAdaptableEntityRepository", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(adaptableNodeRepositoryEClass, AdaptableNodeRepository.class, "AdaptableNodeRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptableNodeRepository_Node(), this.getAdaptableNode(), null, "node", null, 0, -1, AdaptableNodeRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableLinkRepositoryEClass, AdaptableLinkRepository.class, "AdaptableLinkRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptableLinkRepository_Link(), this.getAdaptableLink(), null, "link", null, 0, -1, AdaptableLinkRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableLinkPerformanceRepositoryEClass, AdaptableLinkPerformanceRepository.class, "AdaptableLinkPerformanceRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptableLinkPerformanceRepository_LinkPerformance(), this.getAdaptableLinkPerformance(), null, "linkPerformance", null, 0, -1, AdaptableLinkPerformanceRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableEndPerformanceRepositoryEClass, AdaptableEndPerformanceRepository.class, "AdaptableEndPerformanceRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptableEndPerformanceRepository_EndPerformance(), this.getAdaptableEndPerformance(), null, "endPerformance", null, 0, -1, AdaptableEndPerformanceRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableIntermediatePerformanceRepositoryEClass, AdaptableIntermediatePerformanceRepository.class, "AdaptableIntermediatePerformanceRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptableIntermediatePerformanceRepository_IntermediatePerformance(), this.getAdaptableIntermediatePerformance(), null, "intermediatePerformance", null, 0, -1, AdaptableIntermediatePerformanceRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableSdnNodePerformanceRepositoryEClass, AdaptableSdnNodePerformanceRepository.class, "AdaptableSdnNodePerformanceRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptableSdnNodePerformanceRepository_SdnNodePerformance(), this.getAdaptableSdnNodePerformance(), null, "sdnNodePerformance", null, 0, -1, AdaptableSdnNodePerformanceRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableNetworkInterfaceRepositoryEClass, AdaptableNetworkInterfaceRepository.class, "AdaptableNetworkInterfaceRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptableNetworkInterfaceRepository_NetworkInterfaces(), this.getAdaptableNetworkInterface(), null, "networkInterfaces", null, 0, -1, AdaptableNetworkInterfaceRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(adaptableNetworkInterfacePerformanceRepositoryEClass, AdaptableNetworkInterfacePerformanceRepository.class, "AdaptableNetworkInterfacePerformanceRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptableNetworkInterfacePerformanceRepository_NetworkInterfacePerformance(), this.getAdaptableNetworkInterfacePerformance(), null, "networkInterfacePerformance", null, 0, -1, AdaptableNetworkInterfacePerformanceRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationRepositories_Nodes(), this.getAdaptableNode(), null, "nodes", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationRepositories_EndPerformances(), this.getAdaptableEndPerformance(), null, "endPerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationRepositories_IntermediatePerformances(), this.getAdaptableIntermediatePerformance(), null, "intermediatePerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationRepositories_SdnNodePerformances(), this.getAdaptableSdnNodePerformance(), null, "sdnNodePerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationRepositories_NetworkInterfaces(), this.getAdaptableNetworkInterface(), null, "networkInterfaces", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationRepositories_NetworkInterfacePerformances(), this.getAdaptableNetworkInterfacePerformance(), null, "networkInterfacePerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationRepositories_Links(), this.getAdaptableLink(), null, "links", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationRepositories_LinkPerformances(), this.getAdaptableLinkPerformance(), null, "linkPerformances", null, 0, -1, AdaptationRepositories.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(iAdaptableEntityEClass, IAdaptableEntity.class, "IAdaptableEntity", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		g1 = createEGenericType(iAdaptableEntityEClass_T);
@@ -1375,7 +1100,8 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		initEReference(getAdaptableNetworkInterfacePerformance_InterfaceThroughput(), this.getAlternativeVariable(), null, "interfaceThroughput", null, 0, 1, AdaptableNetworkInterfacePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(adaptationGroupsEClass, AdaptationGroups.class, "AdaptationGroups", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAdaptationGroups_Groups(), this.getIAdaptationGroup(), null, "groups", null, 0, -1, AdaptationGroups.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationGroups_Nodes(), this.getNodeAdaptationGroup(), null, "nodes", null, 0, -1, AdaptationGroups.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationGroups_Links(), this.getLinkAdaptationGroup(), null, "links", null, 0, -1, AdaptationGroups.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(iAdaptationGroupEClass, IAdaptationGroup.class, "IAdaptationGroup", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableEndPerformanceRepositoryItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableEndPerformanceRepositoryItemProvider.java
deleted file mode 100644
index b40731f0a108689a2c585bd346e5207f849bce90..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableEndPerformanceRepositoryItemProvider.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableEndPerformanceRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableEndPerformanceRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableEndPerformanceRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableEndPerformanceRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptableEndPerformanceRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableEndPerformanceRepository.class)) {
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_END_PERFORMANCE_REPOSITORY__END_PERFORMANCE,
-				 DNIAPFactory.eINSTANCE.createAdaptableEndPerformance()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableIntermediatePerformanceRepositoryItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableIntermediatePerformanceRepositoryItemProvider.java
deleted file mode 100644
index 5dbb2a2a1e517b031b06ea18799ffda3d78ded83..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableIntermediatePerformanceRepositoryItemProvider.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableIntermediatePerformanceRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableIntermediatePerformanceRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableIntermediatePerformanceRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableIntermediatePerformanceRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptableIntermediatePerformanceRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableIntermediatePerformanceRepository.class)) {
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY__INTERMEDIATE_PERFORMANCE,
-				 DNIAPFactory.eINSTANCE.createAdaptableIntermediatePerformance()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkPerformanceRepositoryItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkPerformanceRepositoryItemProvider.java
deleted file mode 100644
index e845686ace673005b1457d549bf3535307513dab..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkPerformanceRepositoryItemProvider.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableLinkPerformanceRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLinkPerformanceRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableLinkPerformanceRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableLinkPerformanceRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptableLinkPerformanceRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableLinkPerformanceRepository.class)) {
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY__LINK_PERFORMANCE,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkPerformance()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkRepositoryItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkRepositoryItemProvider.java
deleted file mode 100644
index 471657eb3bc586569595878c9c515ed2cf6958c8..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkRepositoryItemProvider.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableLinkRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableLinkRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableLinkRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableLinkRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_LINK_REPOSITORY__LINK);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableLinkRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableLinkRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptableLinkRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableLinkRepository.class)) {
-			case DNIAPPackage.ADAPTABLE_LINK_REPOSITORY__LINK:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_LINK_REPOSITORY__LINK,
-				 DNIAPFactory.eINSTANCE.createAdaptableLink()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfacePerformanceRepositoryItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfacePerformanceRepositoryItemProvider.java
deleted file mode 100644
index db5ff6a1ddfbf18a67094375715539f1ed415582..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfacePerformanceRepositoryItemProvider.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableNetworkInterfacePerformanceRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterfacePerformanceRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableNetworkInterfacePerformanceRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableNetworkInterfacePerformanceRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptableNetworkInterfacePerformanceRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableNetworkInterfacePerformanceRepository.class)) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY__NETWORK_INTERFACE_PERFORMANCE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfacePerformance()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceRepositoryItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceRepositoryItemProvider.java
deleted file mode 100644
index 6dae353e59a849fc39135eaf3fc07cd9deb7c772..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceRepositoryItemProvider.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableNetworkInterfaceRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNetworkInterfaceRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableNetworkInterfaceRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableNetworkInterfaceRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptableNetworkInterfaceRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableNetworkInterfaceRepository.class)) {
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY__NETWORK_INTERFACES,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterface()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeRepositoryItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeRepositoryItemProvider.java
deleted file mode 100644
index 6835eb41fd231dfd99dce087ea9a25a1ec00fc2d..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeRepositoryItemProvider.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableNodeRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNodeRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableNodeRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableNodeRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_NODE_REPOSITORY__NODE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableNodeRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableNodeRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptableNodeRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableNodeRepository.class)) {
-			case DNIAPPackage.ADAPTABLE_NODE_REPOSITORY__NODE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_NODE_REPOSITORY__NODE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNode()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceRepositoryItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceRepositoryItemProvider.java
deleted file mode 100644
index a697e05a19111c0836e337057ff8767f434b6880..0000000000000000000000000000000000000000
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceRepositoryItemProvider.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- */
-package tools.descartes.dni.dnimm3ap.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository;
-import tools.descartes.dni.dnimm3ap.DNIAPFactory;
-import tools.descartes.dni.dnimm3ap.DNIAPPackage;
-
-/**
- * This is the item provider adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AdaptableSdnNodePerformanceRepositoryItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdaptableSdnNodePerformanceRepositoryItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns AdaptableSdnNodePerformanceRepository.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AdaptableSdnNodePerformanceRepository"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		return getString("_UI_AdaptableSdnNodePerformanceRepository_type");
-	}
-	
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(AdaptableSdnNodePerformanceRepository.class)) {
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY__SDN_NODE_PERFORMANCE,
-				 DNIAPFactory.eINSTANCE.createAdaptableSdnNodePerformance()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return Dnimm3apEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationGroupsItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationGroupsItemProvider.java
index 407d0a2ba5acc9aec3e4cfdd8cc1a125bc78ecb2..61ce2ea075be4685497cb7c6ae16fa6a38b12bde 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationGroupsItemProvider.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationGroupsItemProvider.java
@@ -77,7 +77,8 @@ public class AdaptationGroupsItemProvider
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_GROUPS__GROUPS);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_GROUPS__NODES);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_GROUPS__LINKS);
 		}
 		return childrenFeatures;
 	}
@@ -130,7 +131,8 @@ public class AdaptationGroupsItemProvider
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(AdaptationGroups.class)) {
-			case DNIAPPackage.ADAPTATION_GROUPS__GROUPS:
+			case DNIAPPackage.ADAPTATION_GROUPS__NODES:
+			case DNIAPPackage.ADAPTATION_GROUPS__LINKS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -150,12 +152,12 @@ public class AdaptationGroupsItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_GROUPS__GROUPS,
+				(DNIAPPackage.Literals.ADAPTATION_GROUPS__NODES,
 				 DNIAPFactory.eINSTANCE.createNodeAdaptationGroup()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_GROUPS__GROUPS,
+				(DNIAPPackage.Literals.ADAPTATION_GROUPS__LINKS,
 				 DNIAPFactory.eINSTANCE.createLinkAdaptationGroup()));
 	}
 
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationRepositoriesItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationRepositoriesItemProvider.java
index 2bd8d0bc16a66cc816746335c17dfeae04b3b631..a20ce8021e4658568c0c469beb8b1db98d9d4b13 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationRepositoriesItemProvider.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptationRepositoriesItemProvider.java
@@ -77,14 +77,14 @@ public class AdaptationRepositoriesItemProvider
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NODE_REPOSITORY);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINK_REPOSITORY);
-			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NODES);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__END_PERFORMANCES);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINKS);
+			childrenFeatures.add(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES);
 		}
 		return childrenFeatures;
 	}
@@ -137,14 +137,14 @@ public class AdaptationRepositoriesItemProvider
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(AdaptationRepositories.class)) {
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODE_REPOSITORY:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_REPOSITORY:
-			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY:
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NODES:
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__END_PERFORMANCES:
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES:
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES:
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES:
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES:
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINKS:
+			case DNIAPPackage.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -164,43 +164,43 @@ public class AdaptationRepositoriesItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NODE_REPOSITORY,
-				 DNIAPFactory.eINSTANCE.createAdaptableNodeRepository()));
+				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NODES,
+				 DNIAPFactory.eINSTANCE.createAdaptableNode()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__END_PERFORMANCE_REPOSITORY,
-				 DNIAPFactory.eINSTANCE.createAdaptableEndPerformanceRepository()));
+				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__END_PERFORMANCES,
+				 DNIAPFactory.eINSTANCE.createAdaptableEndPerformance()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCE_REPOSITORY,
-				 DNIAPFactory.eINSTANCE.createAdaptableIntermediatePerformanceRepository()));
+				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__INTERMEDIATE_PERFORMANCES,
+				 DNIAPFactory.eINSTANCE.createAdaptableIntermediatePerformance()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCE_REPOSITORY,
-				 DNIAPFactory.eINSTANCE.createAdaptableSdnNodePerformanceRepository()));
+				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__SDN_NODE_PERFORMANCES,
+				 DNIAPFactory.eINSTANCE.createAdaptableSdnNodePerformance()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_REPOSITORY,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfaceRepository()));
+				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACES,
+				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterface()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCE_REPOSITORY,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfacePerformanceRepository()));
+				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__NETWORK_INTERFACE_PERFORMANCES,
+				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfacePerformance()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINK_REPOSITORY,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkRepository()));
+				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINKS,
+				 DNIAPFactory.eINSTANCE.createAdaptableLink()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINK_PERFORMANCE_REPOSITORY,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkPerformanceRepository()));
+				(DNIAPPackage.Literals.ADAPTATION_REPOSITORIES__LINK_PERFORMANCES,
+				 DNIAPFactory.eINSTANCE.createAdaptableLinkPerformance()));
 	}
 
 	/**
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongVariableSetItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongVariableSetItemProvider.java
index 25ff9eae82e9eb2c77eb9815fa89433a189eeef7..70fe5a04d558c6a6a4786df9d351343f1878404f 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongVariableSetItemProvider.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeConstantLongVariableSetItemProvider.java
@@ -147,46 +147,6 @@ public class AlternativeConstantLongVariableSetItemProvider extends AlternativeC
 				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
 				 DNIAPFactory.eINSTANCE.createAdaptationRepositories()));
 
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNodeRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkPerformanceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableEndPerformanceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableIntermediatePerformanceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableSdnNodePerformanceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfaceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfacePerformanceRepository()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableSetItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableSetItemProvider.java
index ee4ebf579597988a1ac415db4835133d9e6dcd19..1af4debebe27636a7ba940f95c863af255a091db 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableSetItemProvider.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AlternativeVariableSetItemProvider.java
@@ -147,46 +147,6 @@ public class AlternativeVariableSetItemProvider extends AlternativeVariableItemP
 				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
 				 DNIAPFactory.eINSTANCE.createAdaptationRepositories()));
 
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNodeRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableLinkPerformanceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableEndPerformanceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableIntermediatePerformanceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableSdnNodePerformanceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfaceRepository()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
-				 DNIAPFactory.eINSTANCE.createAdaptableNetworkInterfacePerformanceRepository()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(DNIAPPackage.Literals.ALTERNATIVE_PARAMETER_SET__ALTERNATIVE,
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/DNIAPItemProviderAdapterFactory.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/DNIAPItemProviderAdapterFactory.java
index 2b4e4380641f1edeaf23344332ed7521952045aa..c7e87f40a54f399ac311a31b363613a246d75b87 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/DNIAPItemProviderAdapterFactory.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/DNIAPItemProviderAdapterFactory.java
@@ -117,190 +117,6 @@ public class DNIAPItemProviderAdapterFactory extends DNIAPAdapterFactory impleme
 		return adaptationRepositoriesItemProvider;
 	}
 
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableNodeRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNodeRepositoryItemProvider adaptableNodeRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNodeRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableNodeRepositoryAdapter() {
-		if (adaptableNodeRepositoryItemProvider == null) {
-			adaptableNodeRepositoryItemProvider = new AdaptableNodeRepositoryItemProvider(this);
-		}
-
-		return adaptableNodeRepositoryItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableLinkRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableLinkRepositoryItemProvider adaptableLinkRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableLinkRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableLinkRepositoryAdapter() {
-		if (adaptableLinkRepositoryItemProvider == null) {
-			adaptableLinkRepositoryItemProvider = new AdaptableLinkRepositoryItemProvider(this);
-		}
-
-		return adaptableLinkRepositoryItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableLinkPerformanceRepositoryItemProvider adaptableLinkPerformanceRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableLinkPerformanceRepositoryAdapter() {
-		if (adaptableLinkPerformanceRepositoryItemProvider == null) {
-			adaptableLinkPerformanceRepositoryItemProvider = new AdaptableLinkPerformanceRepositoryItemProvider(this);
-		}
-
-		return adaptableLinkPerformanceRepositoryItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableEndPerformanceRepositoryItemProvider adaptableEndPerformanceRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableEndPerformanceRepositoryAdapter() {
-		if (adaptableEndPerformanceRepositoryItemProvider == null) {
-			adaptableEndPerformanceRepositoryItemProvider = new AdaptableEndPerformanceRepositoryItemProvider(this);
-		}
-
-		return adaptableEndPerformanceRepositoryItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableIntermediatePerformanceRepositoryItemProvider adaptableIntermediatePerformanceRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableIntermediatePerformanceRepositoryAdapter() {
-		if (adaptableIntermediatePerformanceRepositoryItemProvider == null) {
-			adaptableIntermediatePerformanceRepositoryItemProvider = new AdaptableIntermediatePerformanceRepositoryItemProvider(this);
-		}
-
-		return adaptableIntermediatePerformanceRepositoryItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableSdnNodePerformanceRepositoryItemProvider adaptableSdnNodePerformanceRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableSdnNodePerformanceRepositoryAdapter() {
-		if (adaptableSdnNodePerformanceRepositoryItemProvider == null) {
-			adaptableSdnNodePerformanceRepositoryItemProvider = new AdaptableSdnNodePerformanceRepositoryItemProvider(this);
-		}
-
-		return adaptableSdnNodePerformanceRepositoryItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNetworkInterfaceRepositoryItemProvider adaptableNetworkInterfaceRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableNetworkInterfaceRepositoryAdapter() {
-		if (adaptableNetworkInterfaceRepositoryItemProvider == null) {
-			adaptableNetworkInterfaceRepositoryItemProvider = new AdaptableNetworkInterfaceRepositoryItemProvider(this);
-		}
-
-		return adaptableNetworkInterfaceRepositoryItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdaptableNetworkInterfacePerformanceRepositoryItemProvider adaptableNetworkInterfacePerformanceRepositoryItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdaptableNetworkInterfacePerformanceRepositoryAdapter() {
-		if (adaptableNetworkInterfacePerformanceRepositoryItemProvider == null) {
-			adaptableNetworkInterfacePerformanceRepositoryItemProvider = new AdaptableNetworkInterfacePerformanceRepositoryItemProvider(this);
-		}
-
-		return adaptableNetworkInterfacePerformanceRepositoryItemProvider;
-	}
-
 	/**
 	 * This keeps track of the one adapter used for all {@link tools.descartes.dni.dnimm3ap.AdaptableNode} instances.
 	 * <!-- begin-user-doc -->
@@ -701,14 +517,6 @@ public class DNIAPItemProviderAdapterFactory extends DNIAPAdapterFactory impleme
 	public void dispose() {
 		if (adaptationPointsItemProvider != null) adaptationPointsItemProvider.dispose();
 		if (adaptationRepositoriesItemProvider != null) adaptationRepositoriesItemProvider.dispose();
-		if (adaptableNodeRepositoryItemProvider != null) adaptableNodeRepositoryItemProvider.dispose();
-		if (adaptableLinkRepositoryItemProvider != null) adaptableLinkRepositoryItemProvider.dispose();
-		if (adaptableLinkPerformanceRepositoryItemProvider != null) adaptableLinkPerformanceRepositoryItemProvider.dispose();
-		if (adaptableEndPerformanceRepositoryItemProvider != null) adaptableEndPerformanceRepositoryItemProvider.dispose();
-		if (adaptableIntermediatePerformanceRepositoryItemProvider != null) adaptableIntermediatePerformanceRepositoryItemProvider.dispose();
-		if (adaptableSdnNodePerformanceRepositoryItemProvider != null) adaptableSdnNodePerformanceRepositoryItemProvider.dispose();
-		if (adaptableNetworkInterfaceRepositoryItemProvider != null) adaptableNetworkInterfaceRepositoryItemProvider.dispose();
-		if (adaptableNetworkInterfacePerformanceRepositoryItemProvider != null) adaptableNetworkInterfacePerformanceRepositoryItemProvider.dispose();
 		if (adaptableNodeItemProvider != null) adaptableNodeItemProvider.dispose();
 		if (adaptableLinkItemProvider != null) adaptableLinkItemProvider.dispose();
 		if (adaptableLinkPerformanceItemProvider != null) adaptableLinkPerformanceItemProvider.dispose();
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPAdapterFactory.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPAdapterFactory.java
index 23124e5afd86b4a6860a4f894fb0a1ee78e5ab61..9a7c399f9a870ecbf9c3b39b1569b97e9ae063f7 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPAdapterFactory.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPAdapterFactory.java
@@ -79,42 +79,6 @@ public class DNIAPAdapterFactory extends AdapterFactoryImpl {
 				return createAdaptationRepositoriesAdapter();
 			}
 			@Override
-			public Adapter caseIAdaptableEntityRepository(IAdaptableEntityRepository object) {
-				return createIAdaptableEntityRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableNodeRepository(AdaptableNodeRepository object) {
-				return createAdaptableNodeRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableLinkRepository(AdaptableLinkRepository object) {
-				return createAdaptableLinkRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableLinkPerformanceRepository(AdaptableLinkPerformanceRepository object) {
-				return createAdaptableLinkPerformanceRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableEndPerformanceRepository(AdaptableEndPerformanceRepository object) {
-				return createAdaptableEndPerformanceRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableIntermediatePerformanceRepository(AdaptableIntermediatePerformanceRepository object) {
-				return createAdaptableIntermediatePerformanceRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableSdnNodePerformanceRepository(AdaptableSdnNodePerformanceRepository object) {
-				return createAdaptableSdnNodePerformanceRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableNetworkInterfaceRepository(AdaptableNetworkInterfaceRepository object) {
-				return createAdaptableNetworkInterfaceRepositoryAdapter();
-			}
-			@Override
-			public Adapter caseAdaptableNetworkInterfacePerformanceRepository(AdaptableNetworkInterfacePerformanceRepository object) {
-				return createAdaptableNetworkInterfacePerformanceRepositoryAdapter();
-			}
-			@Override
 			public <T extends ITypedEntity> Adapter caseIAdaptableEntity(IAdaptableEntity<T> object) {
 				return createIAdaptableEntityAdapter();
 			}
@@ -242,132 +206,6 @@ public class DNIAPAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntityRepository <em>IAdaptable Entity Repository</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 tools.descartes.dni.dnimm3ap.IAdaptableEntityRepository
-	 * @generated
-	 */
-	public Adapter createIAdaptableEntityRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableNodeRepository <em>Adaptable Node Repository</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 tools.descartes.dni.dnimm3ap.AdaptableNodeRepository
-	 * @generated
-	 */
-	public Adapter createAdaptableNodeRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkRepository <em>Adaptable Link Repository</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 tools.descartes.dni.dnimm3ap.AdaptableLinkRepository
-	 * @generated
-	 */
-	public Adapter createAdaptableLinkRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository <em>Adaptable Link Performance Repository</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 tools.descartes.dni.dnimm3ap.AdaptableLinkPerformanceRepository
-	 * @generated
-	 */
-	public Adapter createAdaptableLinkPerformanceRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository <em>Adaptable End Performance Repository</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 tools.descartes.dni.dnimm3ap.AdaptableEndPerformanceRepository
-	 * @generated
-	 */
-	public Adapter createAdaptableEndPerformanceRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository <em>Adaptable Intermediate Performance Repository</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 tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformanceRepository
-	 * @generated
-	 */
-	public Adapter createAdaptableIntermediatePerformanceRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository <em>Adaptable Sdn Node Performance Repository</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 tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformanceRepository
-	 * @generated
-	 */
-	public Adapter createAdaptableSdnNodePerformanceRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository <em>Adaptable Network Interface Repository</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 tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfaceRepository
-	 * @generated
-	 */
-	public Adapter createAdaptableNetworkInterfaceRepositoryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository <em>Adaptable Network Interface Performance Repository</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 tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformanceRepository
-	 * @generated
-	 */
-	public Adapter createAdaptableNetworkInterfacePerformanceRepositoryAdapter() {
-		return null;
-	}
-
 	/**
 	 * Creates a new adapter for an object of class '{@link tools.descartes.dni.dnimm3ap.IAdaptableEntity <em>IAdaptable Entity</em>}'.
 	 * <!-- begin-user-doc -->
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java
index 9769d5f15f60b74aeb5164e24e1409bb7349f5ae..7f40cb5c8bab3a5f162ca513eb28c337a6752712 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java
@@ -81,68 +81,6 @@ public class DNIAPSwitch<T1> extends Switch<T1> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case DNIAPPackage.IADAPTABLE_ENTITY_REPOSITORY: {
-				IAdaptableEntityRepository iAdaptableEntityRepository = (IAdaptableEntityRepository)theEObject;
-				T1 result = caseIAdaptableEntityRepository(iAdaptableEntityRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_NODE_REPOSITORY: {
-				AdaptableNodeRepository adaptableNodeRepository = (AdaptableNodeRepository)theEObject;
-				T1 result = caseAdaptableNodeRepository(adaptableNodeRepository);
-				if (result == null) result = caseIAdaptableEntityRepository(adaptableNodeRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_LINK_REPOSITORY: {
-				AdaptableLinkRepository adaptableLinkRepository = (AdaptableLinkRepository)theEObject;
-				T1 result = caseAdaptableLinkRepository(adaptableLinkRepository);
-				if (result == null) result = caseIAdaptableEntityRepository(adaptableLinkRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_LINK_PERFORMANCE_REPOSITORY: {
-				AdaptableLinkPerformanceRepository adaptableLinkPerformanceRepository = (AdaptableLinkPerformanceRepository)theEObject;
-				T1 result = caseAdaptableLinkPerformanceRepository(adaptableLinkPerformanceRepository);
-				if (result == null) result = caseIAdaptableEntityRepository(adaptableLinkPerformanceRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_END_PERFORMANCE_REPOSITORY: {
-				AdaptableEndPerformanceRepository adaptableEndPerformanceRepository = (AdaptableEndPerformanceRepository)theEObject;
-				T1 result = caseAdaptableEndPerformanceRepository(adaptableEndPerformanceRepository);
-				if (result == null) result = caseIAdaptableEntityRepository(adaptableEndPerformanceRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_INTERMEDIATE_PERFORMANCE_REPOSITORY: {
-				AdaptableIntermediatePerformanceRepository adaptableIntermediatePerformanceRepository = (AdaptableIntermediatePerformanceRepository)theEObject;
-				T1 result = caseAdaptableIntermediatePerformanceRepository(adaptableIntermediatePerformanceRepository);
-				if (result == null) result = caseIAdaptableEntityRepository(adaptableIntermediatePerformanceRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE_REPOSITORY: {
-				AdaptableSdnNodePerformanceRepository adaptableSdnNodePerformanceRepository = (AdaptableSdnNodePerformanceRepository)theEObject;
-				T1 result = caseAdaptableSdnNodePerformanceRepository(adaptableSdnNodePerformanceRepository);
-				if (result == null) result = caseIAdaptableEntityRepository(adaptableSdnNodePerformanceRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_REPOSITORY: {
-				AdaptableNetworkInterfaceRepository adaptableNetworkInterfaceRepository = (AdaptableNetworkInterfaceRepository)theEObject;
-				T1 result = caseAdaptableNetworkInterfaceRepository(adaptableNetworkInterfaceRepository);
-				if (result == null) result = caseIAdaptableEntityRepository(adaptableNetworkInterfaceRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE_REPOSITORY: {
-				AdaptableNetworkInterfacePerformanceRepository adaptableNetworkInterfacePerformanceRepository = (AdaptableNetworkInterfacePerformanceRepository)theEObject;
-				T1 result = caseAdaptableNetworkInterfacePerformanceRepository(adaptableNetworkInterfacePerformanceRepository);
-				if (result == null) result = caseIAdaptableEntityRepository(adaptableNetworkInterfacePerformanceRepository);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case DNIAPPackage.IADAPTABLE_ENTITY: {
 				IAdaptableEntity<?> iAdaptableEntity = (IAdaptableEntity<?>)theEObject;
 				T1 result = caseIAdaptableEntity(iAdaptableEntity);
@@ -310,141 +248,6 @@ public class DNIAPSwitch<T1> extends Switch<T1> {
 		return null;
 	}
 
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>IAdaptable Entity Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>IAdaptable Entity Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseIAdaptableEntityRepository(IAdaptableEntityRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Node Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Adaptable Node Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableNodeRepository(AdaptableNodeRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Link Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Adaptable Link Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableLinkRepository(AdaptableLinkRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Link Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Adaptable Link Performance Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableLinkPerformanceRepository(AdaptableLinkPerformanceRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable End Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Adaptable End Performance Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableEndPerformanceRepository(AdaptableEndPerformanceRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Intermediate Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Adaptable Intermediate Performance Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableIntermediatePerformanceRepository(AdaptableIntermediatePerformanceRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Sdn Node Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Adaptable Sdn Node Performance Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableSdnNodePerformanceRepository(AdaptableSdnNodePerformanceRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Network Interface Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Adaptable Network Interface Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableNetworkInterfaceRepository(AdaptableNetworkInterfaceRepository object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Adaptable Network Interface Performance Repository</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Adaptable Network Interface Performance Repository</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T1 caseAdaptableNetworkInterfacePerformanceRepository(AdaptableNetworkInterfacePerformanceRepository object) {
-		return null;
-	}
-
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>IAdaptable Entity</em>'.
 	 * <!-- begin-user-doc -->