diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..2f6ba411d91439ba8864e0598910f9387b63c447
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "models"]
+	path = models
+	url = ../models.git
+	branch = main
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 26d33521af10bcc7fd8cea344038eaaeb78d0ef5..0000000000000000000000000000000000000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index fb7f4a8a465d42b4a0390d464b83b99e8465bba7..0000000000000000000000000000000000000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CompilerConfiguration">
-    <bytecodeTargetLevel target="11" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
deleted file mode 100644
index 69921a0a18865ba1eea466360f5f9166f305c1a8..0000000000000000000000000000000000000000
--- a/.idea/gradle.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="GradleSettings">
-    <option name="linkedExternalProjectsSettings">
-      <GradleProjectSettings>
-        <option name="distributionType" value="DEFAULT_WRAPPED" />
-        <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="gradleJvm" value="openjdk-16" />
-        <option name="modules">
-          <set>
-            <option value="$PROJECT_DIR$" />
-          </set>
-        </option>
-      </GradleProjectSettings>
-    </option>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
deleted file mode 100644
index 43df70078ffdab6128df0cde36c3a43372dd910b..0000000000000000000000000000000000000000
--- a/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="RemoteRepositoriesConfiguration">
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Maven Central repository" />
-      <option name="url" value="https://repo1.maven.org/maven2" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="jboss.community" />
-      <option name="name" value="JBoss Community repository" />
-      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="MavenRepo" />
-      <option name="name" value="MavenRepo" />
-      <option name="url" value="https://repo.maven.apache.org/maven2/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="maven" />
-      <option name="name" value="maven" />
-      <option name="url" value="https://packages.confluent.io/maven/" />
-    </remote-repository>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/jpa-buddy.xml b/.idea/jpa-buddy.xml
deleted file mode 100644
index d08f40080caa9b3126ee8385c13832d2e63f4ad6..0000000000000000000000000000000000000000
--- a/.idea/jpa-buddy.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="JpaBuddyIdeaProjectConfig">
-    <option name="defaultUnitInitialized" value="true" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 223dc613aaed99de1e1c8c8d5f6412646f4f9147..0000000000000000000000000000000000000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="16" project-jdk-type="JavaSDK" />
-</project>
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 797acea53eb091cf5b30518802c3073f544adeed..0000000000000000000000000000000000000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="RunConfigurationProducerService">
-    <option name="ignoredProducers">
-      <set>
-        <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
-      </set>
-    </option>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
deleted file mode 100644
index e96534fb27b68192f27f985d3879e173ec77adb8..0000000000000000000000000000000000000000
--- a/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Palette2">
-    <group name="Swing">
-      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
-      </item>
-      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
-        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
-        <initial-values>
-          <property name="text" value="Button" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="RadioButton" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="CheckBox" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="Label" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
-          <preferred-size width="-1" height="20" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
-      </item>
-    </group>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1ddfbbc029bcab630581847471d7f238ec53..0000000000000000000000000000000000000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="Git" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index ca1b7b5e55b2af1d3338b2e340035f78d76768d0..04460810d6e1f42e6dfc902b30318b6f3fcf8333 100644
--- a/build.gradle
+++ b/build.gradle
@@ -38,7 +38,12 @@ repositories {
 	maven { url "https://packages.confluent.io/maven/" }
 }
 
+bootRun{
+	standardInput(System.in)
+}
+
 dependencies {
+	implementation 'org.jetbrains:annotations:20.1.0'
 	developmentOnly 'org.springframework.boot:spring-boot-devtools'
 	implementation 'org.eclipse.emf:org.eclipse.emf.ecore:2.+'
 	implementation 'org.eclipse.emf:org.eclipse.emf.common:2.+'
@@ -49,6 +54,7 @@ dependencies {
 //	implementation 'com.google.protobuf:protobuf-java:3.17.3'
 	implementation 'com.google.protobuf:protobuf-java-util:3.17.3'
 	implementation "org.springframework.integration:spring-integration-mqtt:5.5.3"
+	implementation 'com.lemmingapex.trilateration:trilateration:1.0.2'
 
 	testImplementation 'org.springframework.boot:spring-boot-starter-test'
 	runtimeOnly 'com.h2database:h2'
@@ -76,7 +82,13 @@ protobuf {
 sourceSets {
 	main {
 		proto {
-			srcDir "src/main/resources"
+			srcDirs "models/interfaces/GenericSensor",
+			        "models/interfaces/SimpleScene",
+					"models/interfaces/OFBizOrderpicker",
+					"models/interfaces/Tooz",
+					"models/interfaces/VDA5050",
+					"models/interfaces/OSM"
+			// srcDir "src/main/resources"
 		}
 		java {
 			// include self written and generated code
diff --git a/emf_datamodel/model/iPos_Datamodel.aird b/emf_datamodel/model/iPos_Datamodel.aird
index 6222f9b2bbb2928614aca0fdea8aefaf181a893e..e1cba59c8e3f8bf0892133fda2f02c9c295b7f66 100644
--- a/emf_datamodel/model/iPos_Datamodel.aird
+++ b/emf_datamodel/model/iPos_Datamodel.aird
@@ -5,10 +5,34 @@
     <semanticResources>iPos_Datamodel.genmodel</semanticResources>
     <ownedViews xmi:type="viewpoint:DView" uid="_EpwecAQNEey-kNQ7esRa_g">
       <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
-      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Et4wgAQNEey-kNQ7esRa_g" name="iPos_Datamodel" repPath="#_Es-xkAQNEey-kNQ7esRa_g" changeId="05a0c2e9-5695-404c-b13f-fff437b73d1e">
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Et4wgAQNEey-kNQ7esRa_g" name="iPos_Datamodel" repPath="#_Es-xkAQNEey-kNQ7esRa_g" changeId="9e17b80d-28a7-4855-b807-bc54adcf6599">
         <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
         <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#/"/>
       </ownedRepresentationDescriptors>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_vF3jwDx2EeyWNq6fFfWVSw" name="OFBiz" repPath="#_vFz5YDx2EeyWNq6fFfWVSw" changeId="42ca2046-f1e0-4eb3-ae25-3099986f2d01">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+        <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//OFBiz"/>
+      </ownedRepresentationDescriptors>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_FmM9IDx3EeyWNq6fFfWVSw" name="IPosDevKit" repPath="#_FmLvADx3EeyWNq6fFfWVSw" changeId="3f833c36-7dc1-448e-a4b4-5ae7bd5cdb31">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+        <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//IPosDevKit"/>
+      </ownedRepresentationDescriptors>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_27WZMIsNEeyJ0bON1VCj7g" name="Tooz" repPath="#_27T88IsNEeyJ0bON1VCj7g" changeId="d3c69b19-086f-45f8-ab55-f7de57bffb9a">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+        <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//Tooz"/>
+      </ownedRepresentationDescriptors>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_KUBu0I_UEeyJ0bON1VCj7g" name="VDA5050" repPath="#_KUAgsI_UEeyJ0bON1VCj7g" changeId="c93da314-38a7-4738-ab2b-de17dd609a6b">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+        <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//VDA5050"/>
+      </ownedRepresentationDescriptors>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_q62u4KEeEeyjYoAVD5IwbQ" name="OSM" repPath="#_q60SoKEeEeyjYoAVD5IwbQ" changeId="95660e9c-3628-4a27-b3e3-fbe035508556">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+        <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//OSM"/>
+      </ownedRepresentationDescriptors>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_OXo28OMSEeylWPfcS0Eglw" name="IPos_Datamodel_print" repPath="#_OXjXYOMSEeylWPfcS0Eglw" changeId="49f176ef-2209-42aa-a059-8ebc99e8e576">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+        <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//IPos_Datamodel_print"/>
+      </ownedRepresentationDescriptors>
     </ownedViews>
   </viewpoint:DAnalysis>
   <diagram:DSemanticDiagram uid="_Es-xkAQNEey-kNQ7esRa_g">
@@ -17,15 +41,15 @@
         <children xmi:type="notation:Node" xmi:id="_OVBp4AQNEey-kNQ7esRa_g" type="2003" element="_OUqdgAQNEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_OVEGIAQNEey-kNQ7esRa_g" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_OVFUQAQNEey-kNQ7esRa_g" type="7004">
-            <children xmi:type="notation:Node" xmi:id="_UeqhoAQNEey-kNQ7esRa_g" type="3010" element="_UecfMAQNEey-kNQ7esRa_g">
-              <styles xmi:type="notation:FontStyle" xmi:id="_UeqhoQQNEey-kNQ7esRa_g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_UeqhogQNEey-kNQ7esRa_g"/>
+            <children xmi:type="notation:Node" xmi:id="__p36YBuBEeyPOIo-WqURQQ" type="3010" element="__pp38BuBEeyPOIo-WqURQQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="__p36YRuBEeyPOIo-WqURQQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="__p36YhuBEeyPOIo-WqURQQ"/>
             </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_OVFUQQQNEey-kNQ7esRa_g"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_OVFUQgQNEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_OVBp4QQNEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OVBp4gQNEey-kNQ7esRa_g" x="342" y="174" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OVBp4gQNEey-kNQ7esRa_g" x="390" y="174" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_hS0UIAQOEey-kNQ7esRa_g" type="2003" element="_hSvboAQOEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_hS0UIwQOEey-kNQ7esRa_g" type="5007"/>
@@ -38,7 +62,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_hS07MgQOEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_hS0UIQQOEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hS0UIgQOEey-kNQ7esRa_g" x="480" y="30" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hS0UIgQOEey-kNQ7esRa_g" x="507" y="30" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_Pg1TsAQjEey-kNQ7esRa_g" type="2003" element="_PgvNEAQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_Pg16wAQjEey-kNQ7esRa_g" type="5007"/>
@@ -55,20 +79,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_Pg16wwQjEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_Pg1TsQQjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pg1TsgQjEey-kNQ7esRa_g" x="672" y="174" width="147" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_ZOlLYwQjEey-kNQ7esRa_g" type="2003" element="_ZOg58AQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_ZOlycAQjEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_ZOlycQQjEey-kNQ7esRa_g" type="7004">
-            <children xmi:type="notation:Node" xmi:id="_7XR6UAcpEey-kNQ7esRa_g" type="3010" element="_7XFGAAcpEey-kNQ7esRa_g">
-              <styles xmi:type="notation:FontStyle" xmi:id="_7XR6UQcpEey-kNQ7esRa_g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_7XR6UgcpEey-kNQ7esRa_g"/>
-            </children>
-            <styles xmi:type="notation:SortingStyle" xmi:id="_ZOlycgQjEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_ZOlycwQjEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_ZOlLZAQjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZOlLZQQjEey-kNQ7esRa_g" x="498" y="312" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pg1TsgQjEey-kNQ7esRa_g" x="630" y="168" width="147" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_beL2gAQjEey-kNQ7esRa_g" type="2003" element="_beGW8AQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_beMdkAQjEey-kNQ7esRa_g" type="5007"/>
@@ -77,7 +88,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_beMdkwQjEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_beL2gQQjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_beL2ggQjEey-kNQ7esRa_g" x="690" y="420" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_beL2ggQjEey-kNQ7esRa_g" x="684" y="316" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_fodekAQjEey-kNQ7esRa_g" type="2003" element="_foX_AAQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_fodekwQjEey-kNQ7esRa_g" type="5007"/>
@@ -86,7 +97,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_fodelgQjEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_fodekQQjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fodekgQjEey-kNQ7esRa_g" x="690" y="582" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fodekgQjEey-kNQ7esRa_g" x="684" y="449" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_hdV8kAQjEey-kNQ7esRa_g" type="2003" element="_hdQdAAQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_hdWjoAQjEey-kNQ7esRa_g" type="5007"/>
@@ -95,25 +106,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_hdWjowQjEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_hdV8kQQjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hdV8kgQjEey-kNQ7esRa_g" x="957" y="378" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_11mPIAQjEey-kNQ7esRa_g" type="2003" element="_11gvkAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_11m2MAQjEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_11m2MQQjEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_11m2MgQjEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_11m2MwQjEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_11mPIQQjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_11mPIgQjEey-kNQ7esRa_g" x="558" y="792" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_37e9kAQjEey-kNQ7esRa_g" type="2003" element="_37ZeAAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_37e9kwQjEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_37fkoAQjEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_37fkoQQjEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_37fkogQjEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_37e9kQQjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37e9kgQjEey-kNQ7esRa_g" x="828" y="792" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hdV8kgQjEey-kNQ7esRa_g" x="951" y="-72" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_738MEAQjEey-kNQ7esRa_g" type="2003" element="_733TkAQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_738MEwQjEey-kNQ7esRa_g" type="5007"/>
@@ -134,7 +127,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_738MFgQjEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_738MEQQjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_738MEgQjEey-kNQ7esRa_g" x="546" y="972" width="177" height="112"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_738MEgQjEey-kNQ7esRa_g" x="1138" y="486" width="177" height="112"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_-LbRoAQjEey-kNQ7esRa_g" type="2003" element="_-LVyEAQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_-LbRowQjEey-kNQ7esRa_g" type="5007"/>
@@ -143,7 +136,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_-LbRpgQjEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_-LbRoQQjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-LbRogQjEey-kNQ7esRa_g" x="978" y="624" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-LbRogQjEey-kNQ7esRa_g" x="936" y="185" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_Ecj4gAQkEey-kNQ7esRa_g" type="2003" element="_EcfnEAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_EckfkAQkEey-kNQ7esRa_g" type="5007"/>
@@ -160,7 +153,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_EckfkwQkEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_Ecj4gQQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ecj4ggQkEey-kNQ7esRa_g" x="1104" y="984" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ecj4ggQkEey-kNQ7esRa_g" x="844" y="479" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_HfSpsAQkEey-kNQ7esRa_g" type="2003" element="_HfNxMAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_HfSpswQkEey-kNQ7esRa_g" type="5007"/>
@@ -181,7 +174,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_HfSptgQkEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_HfSpsQQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HfSpsgQkEey-kNQ7esRa_g" x="1248" y="984" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HfSpsgQkEey-kNQ7esRa_g" x="988" y="479" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_SIv7sAQkEey-kNQ7esRa_g" type="2003" element="_SIp1EAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_SIv7swQkEey-kNQ7esRa_g" type="5007"/>
@@ -198,16 +191,24 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_SIv7tgQkEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_SIv7sQQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SIv7sgQkEey-kNQ7esRa_g" x="252" y="516" width="147" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SIv7sgQkEey-kNQ7esRa_g" x="288" y="383" width="147" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_UOFQgAQkEey-kNQ7esRa_g" type="2003" element="_UN3OEAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_UOFQgwQkEey-kNQ7esRa_g" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_UOFQhAQkEey-kNQ7esRa_g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_6pPCkBrzEeyPOIo-WqURQQ" type="3010" element="_6lo8ABrzEeyPOIo-WqURQQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_6pPCkRrzEeyPOIo-WqURQQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_6pPCkhrzEeyPOIo-WqURQQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_8ytQgBrzEeyPOIo-WqURQQ" type="3010" element="_8ybjsBrzEeyPOIo-WqURQQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_8ytQgRrzEeyPOIo-WqURQQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_8ytQghrzEeyPOIo-WqURQQ"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_UOFQhQQkEey-kNQ7esRa_g"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_UOFQhgQkEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_UOFQgQQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UOFQggQkEey-kNQ7esRa_g" y="516" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UOFQggQkEey-kNQ7esRa_g" y="306" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_VW89EAQkEey-kNQ7esRa_g" type="2003" element="_VW3dgAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_VW9kIAQkEey-kNQ7esRa_g" type="5007"/>
@@ -216,7 +217,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_VW9kIwQkEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_VW89EQQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VW89EgQkEey-kNQ7esRa_g" y="366" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VW89EgQkEey-kNQ7esRa_g" y="156" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_XZkVEAQkEey-kNQ7esRa_g" type="2003" element="_XZe1gAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_XZk8IAQkEey-kNQ7esRa_g" type="5007"/>
@@ -237,7 +238,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_XZk8IwQkEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_XZkVEQQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XZkVEgQkEey-kNQ7esRa_g" y="654" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XZkVEgQkEey-kNQ7esRa_g" y="449" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_aKkdFgQkEey-kNQ7esRa_g" type="2003" element="_aKe9gAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_aKlEIAQkEey-kNQ7esRa_g" type="5007"/>
@@ -246,16 +247,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_aKlEIwQkEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_aKkdFwQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aKkdGAQkEey-kNQ7esRa_g" x="-210" y="288" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_C_NUQAQlEey-kNQ7esRa_g" type="2003" element="_C_GmkAQlEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_C_NUQwQlEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_C_NURAQlEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_C_NURQQlEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_C_NURgQlEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_C_NUQQQlEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C_NUQgQlEey-kNQ7esRa_g" x="78" y="174" width="138" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aKkdGAQkEey-kNQ7esRa_g" y="24" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_YB0RsATxEey-kNQ7esRa_g" type="2003" element="_YBru0ATxEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_YB04wATxEey-kNQ7esRa_g" type="5007"/>
@@ -280,7 +272,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_YB04wwTxEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_YB0RsQTxEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YB0RsgTxEey-kNQ7esRa_g" x="1188" y="378" width="120" height="109"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YB0RsgTxEey-kNQ7esRa_g" x="1119" y="-77" width="120" height="109"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_0g1BQAT3Eey-kNQ7esRa_g" type="2003" element="_0gtsgAT3Eey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_0g1BQwT3Eey-kNQ7esRa_g" type="5007"/>
@@ -293,7 +285,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_0g1oUgT3Eey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_0g1BQQT3Eey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0g1BQgT3Eey-kNQ7esRa_g" x="1110" y="624" width="225" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0g1BQgT3Eey-kNQ7esRa_g" x="1080" y="191" width="225" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_lk5_0AWMEey-kNQ7esRa_g" type="2003" element="_lkw14AWMEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_lk5_0wWMEey-kNQ7esRa_g" type="5007"/>
@@ -302,20 +294,20 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_lk5_1gWMEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_lk5_0QWMEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lk5_0gWMEey-kNQ7esRa_g" x="1188" y="792" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lk5_0gWMEey-kNQ7esRa_g" x="993" y="334" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="__k3HcAWcEey-kNQ7esRa_g" type="2003" element="__kvLoAWcEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="__k3HcwWcEey-kNQ7esRa_g" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="__k3ugAWcEey-kNQ7esRa_g" type="7004">
-            <children xmi:type="notation:Node" xmi:id="_9wiGQAWgEey-kNQ7esRa_g" type="3010" element="_9wYVQAWgEey-kNQ7esRa_g">
-              <styles xmi:type="notation:FontStyle" xmi:id="_9wiGQQWgEey-kNQ7esRa_g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_9wiGQgWgEey-kNQ7esRa_g"/>
+            <children xmi:type="notation:Node" xmi:id="_4ZsUUCeVEeydzb6PKf1sDQ" type="3010" element="_4ZOaQCeVEeydzb6PKf1sDQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_4ZsUUSeVEeydzb6PKf1sDQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_4ZsUUieVEeydzb6PKf1sDQ"/>
             </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="__k3ugQWcEey-kNQ7esRa_g"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="__k3uggWcEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="__k3HcQWcEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="__k3HcgWcEey-kNQ7esRa_g" x="1464" y="-180" width="144" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="__k3HcgWcEey-kNQ7esRa_g" x="1421" y="-553" width="144" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_DsJToAWiEey-kNQ7esRa_g" type="2003" element="_DsBX0AWiEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_DsJTowWiEey-kNQ7esRa_g" type="5007"/>
@@ -336,7 +328,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_DsJTpgWiEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_DsJToQWiEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DsJTogWiEey-kNQ7esRa_g" x="1890" y="-18" width="147" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DsJTogWiEey-kNQ7esRa_g" x="1847" y="-391" width="147" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_FeuEgAWiEey-kNQ7esRa_g" type="2003" element="_FemvwAWiEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_FeuEgwWiEey-kNQ7esRa_g" type="5007"/>
@@ -349,7 +341,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_FeuEhgWiEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_FeuEgQWiEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FeuEggWiEey-kNQ7esRa_g" x="1656" y="132" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FeuEggWiEey-kNQ7esRa_g" x="1613" y="-241" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_GbdZkAWiEey-kNQ7esRa_g" type="2003" element="_GbXS8AWiEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_GbdZkwWiEey-kNQ7esRa_g" type="5007"/>
@@ -362,34 +354,41 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_GbdZlgWiEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_GbdZkQWiEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GbdZkgWiEey-kNQ7esRa_g" x="1818" y="132" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GbdZkgWiEey-kNQ7esRa_g" x="1775" y="-241" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_NxDRoAWjEey-kNQ7esRa_g" type="2003" element="_Nw8j8AWjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_NxDRowWjEey-kNQ7esRa_g" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_NxDRpAWjEey-kNQ7esRa_g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_5-5BcCeeEeydzb6PKf1sDQ" type="3010" element="_5-c8kCeeEeydzb6PKf1sDQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_5-5BcSeeEeydzb6PKf1sDQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_5-5BcieeEeydzb6PKf1sDQ"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_NxDRpQWjEey-kNQ7esRa_g"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_NxDRpgWjEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_NxDRoQWjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NxDRogWjEey-kNQ7esRa_g" x="1404" y="-12" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_Sn_ycAWjEey-kNQ7esRa_g" type="2003" element="_Sn32oAWjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_SoAZgAWjEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_SoAZgQWjEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_SoAZggWjEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_SoAZgwWjEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_Sn_ycQWjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sn_ycgWjEey-kNQ7esRa_g" x="1350" y="144" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NxDRogWjEey-kNQ7esRa_g" x="1361" y="-408" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_YPBsYAWjEey-kNQ7esRa_g" type="2003" element="_YO6XoAWjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_YPBsYwWjEey-kNQ7esRa_g" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_YPBsZAWjEey-kNQ7esRa_g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_ZINmUCdREey8t_kDLBrwCg" type="3010" element="_ZHyIgCdREey8t_kDLBrwCg">
+              <styles xmi:type="notation:FontStyle" xmi:id="_ZINmUSdREey8t_kDLBrwCg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_ZIONYCdREey8t_kDLBrwCg"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_dZcK8CdREey8t_kDLBrwCg" type="3010" element="_dZJ3ECdREey8t_kDLBrwCg">
+              <styles xmi:type="notation:FontStyle" xmi:id="_dZcK8SdREey8t_kDLBrwCg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_dZcK8idREey8t_kDLBrwCg"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_g0umECdREey8t_kDLBrwCg" type="3010" element="_g0c5QCdREey8t_kDLBrwCg">
+              <styles xmi:type="notation:FontStyle" xmi:id="_g0umESdREey8t_kDLBrwCg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_g0umEidREey8t_kDLBrwCg"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_YPBsZQWjEey-kNQ7esRa_g"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_YPBsZgWjEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_YPBsYQWjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YPBsYgWjEey-kNQ7esRa_g" x="1476" y="144" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YPBsYgWjEey-kNQ7esRa_g" x="1433" y="-229" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_s0mCMAWjEey-kNQ7esRa_g" type="2003" element="_s0dfUAWjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_s0mCMwWjEey-kNQ7esRa_g" type="5007"/>
@@ -402,11 +401,15 @@
               <styles xmi:type="notation:FontStyle" xmi:id="_qBsbcQcREey-kNQ7esRa_g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_qBsbcgcREey-kNQ7esRa_g"/>
             </children>
+            <children xmi:type="notation:Node" xmi:id="_9OAo0CeeEeydzb6PKf1sDQ" type="3010" element="_9NuU8CeeEeydzb6PKf1sDQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_9OAo0SeeEeydzb6PKf1sDQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_9OAo0ieeEeydzb6PKf1sDQ"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_s0mpQQWjEey-kNQ7esRa_g"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_s0mpQgWjEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_s0mCMQWjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s0mCMgWjEey-kNQ7esRa_g" x="1035" y="-18" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s0mCMgWjEey-kNQ7esRa_g" x="1032" y="-390" width="132" height="106"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_lCMqkAZsEey-kNQ7esRa_g" type="2003" element="_lBuJcAZsEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_lCN4sAZsEey-kNQ7esRa_g" type="5007"/>
@@ -415,56 +418,15 @@
               <styles xmi:type="notation:FontStyle" xmi:id="_UpH4wRFAEeydeasO1RaQEg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_UpIf0BFAEeydeasO1RaQEg"/>
             </children>
+            <children xmi:type="notation:Node" xmi:id="_ooLRABvcEeyPOIo-WqURQQ" type="3010" element="_onxBUBvcEeyPOIo-WqURQQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_ooLRARvcEeyPOIo-WqURQQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_ooLRAhvcEeyPOIo-WqURQQ"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_lCOfwQZsEey-kNQ7esRa_g"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_lCOfwgZsEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_lCNRoAZsEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lCNRoQZsEey-kNQ7esRa_g" x="1542" y="714" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_ovs3EAZsEey-kNQ7esRa_g" type="2003" element="_ovifAAZsEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_ovs3EwZsEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_ovs3FAZsEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_ovs3FQZsEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_ovs3FgZsEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_ovs3EQZsEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ovs3EgZsEey-kNQ7esRa_g" x="2328" y="-174" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_uNQr8AZsEey-kNQ7esRa_g" type="2003" element="_uNHiAAZsEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_uNRTAAZsEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_uNRTAQZsEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_uNRTAgZsEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_uNRTAwZsEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_uNQr8QZsEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uNQr8gZsEey-kNQ7esRa_g" x="2322" y="120" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_vpk48AZsEey-kNQ7esRa_g" type="2003" element="_vpcWEAZsEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_vpk48wZsEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_vpk49AZsEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_vpk49QZsEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_vpk49gZsEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_vpk48QZsEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vpk48gZsEey-kNQ7esRa_g" x="2478" y="120" width="138" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_yn7gcAZsEey-kNQ7esRa_g" type="2003" element="_yny9kAZsEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_yn7gcwZsEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_yn7gdAZsEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_yn7gdQZsEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_yn7gdgZsEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_yn7gcQZsEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yn7gcgZsEey-kNQ7esRa_g" x="2658" y="120" width="188" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_60erIAZsEey-kNQ7esRa_g" type="2003" element="_60U6IAZsEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_60fSMAZsEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_60fSMQZsEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_60fSMgZsEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_60fSMwZsEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_60erIQZsEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_60erIgZsEey-kNQ7esRa_g" x="2886" y="120" width="144" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lCNRoQZsEey-kNQ7esRa_g" x="1512" y="456" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_IONsYAZtEey-kNQ7esRa_g" type="2003" element="_IOFwkAZtEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_IONsYwZtEey-kNQ7esRa_g" type="5007"/>
@@ -487,33 +449,6 @@
           <styles xmi:type="notation:ShapeStyle" xmi:id="_IONsYQZtEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
           <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IONsYgZtEey-kNQ7esRa_g" x="2550" y="306" width="237" height="119"/>
         </children>
-        <children xmi:type="notation:Node" xmi:id="_fnNG4AZ_Eey-kNQ7esRa_g" type="2003" element="_fnEkAAZ_Eey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_fnNt8AZ_Eey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_fnNt8QZ_Eey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_fnNt8gZ_Eey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_fnNt8wZ_Eey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_fnNG4QZ_Eey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fnNG4gZ_Eey-kNQ7esRa_g" x="2658" y="18" width="188" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_jeN0sAZ_Eey-kNQ7esRa_g" type="2003" element="_jeEDsAZ_Eey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_jeN0swZ_Eey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_jeN0tAZ_Eey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_jeN0tQZ_Eey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_jeN0tgZ_Eey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_jeN0sQZ_Eey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jeN0sgZ_Eey-kNQ7esRa_g" x="2880" y="6" width="183" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_PfGlcAaAEey-kNQ7esRa_g" type="2003" element="_Pe6YMAaAEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_PfGlcwaAEey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_PfGldAaAEey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_PfGldQaAEey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_PfGldgaAEey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_PfGlcQaAEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PfGlcgaAEey-kNQ7esRa_g" x="2322" y="325" width="180" height="100"/>
-        </children>
         <children xmi:type="notation:Node" xmi:id="_nuczcAaCEey-kNQ7esRa_g" type="2003" element="_nuR0UAaCEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_nuczcwaCEey-kNQ7esRa_g" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_nuczdAaCEey-kNQ7esRa_g" type="7004">
@@ -539,7 +474,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_NNRv9gaEEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_NNRv8QaEEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NNRv8gaEEey-kNQ7esRa_g" x="87" y="-96" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NNRv8gaEEey-kNQ7esRa_g" x="186" y="24" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_M0odoAcMEey-kNQ7esRa_g" type="2003" element="_M0fTsAcMEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_M0odowcMEey-kNQ7esRa_g" type="5007"/>
@@ -548,7 +483,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_M0odpgcMEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_M0odoQcMEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M0odogcMEey-kNQ7esRa_g" x="1956" y="132" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M0odogcMEey-kNQ7esRa_g" x="1913" y="-241" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_zBjrsAcMEey-kNQ7esRa_g" type="2003" element="_zBZToAcMEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_zBkSwAcMEey-kNQ7esRa_g" type="5007"/>
@@ -561,7 +496,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_zBkSwwcMEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_zBjrsQcMEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zBjrsgcMEey-kNQ7esRa_g" x="2118" y="132" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zBjrsgcMEey-kNQ7esRa_g" x="2075" y="-241" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_I-Y58AcOEey-kNQ7esRa_g" type="2003" element="_I-N60AcOEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_I-Y58wcOEey-kNQ7esRa_g" type="5007"/>
@@ -574,7 +509,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_I-Y59gcOEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_I-Y58QcOEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I-Y58gcOEey-kNQ7esRa_g" x="897" y="138" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I-Y58gcOEey-kNQ7esRa_g" x="894" y="-228" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_K7QPQAcOEey-kNQ7esRa_g" type="2003" element="_K7F3MAcOEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_K7QPQwcOEey-kNQ7esRa_g" type="5007"/>
@@ -583,16 +518,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_K7QPRgcOEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_K7QPQQcOEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K7QPQgcOEey-kNQ7esRa_g" x="1047" y="138" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_CJpvYAcREey-kNQ7esRa_g" type="2003" element="_CJeJMAcREey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_CJqWcAcREey-kNQ7esRa_g" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_CJqWcQcREey-kNQ7esRa_g" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_CJqWcgcREey-kNQ7esRa_g"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_CJqWcwcREey-kNQ7esRa_g"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_CJpvYQcREey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJpvYgcREey-kNQ7esRa_g" x="2322" y="582" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K7QPQgcOEey-kNQ7esRa_g" x="1044" y="-228" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_VKA6kAcUEey-kNQ7esRa_g" type="2003" element="_VJ0tUAcUEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_VKA6kwcUEey-kNQ7esRa_g" type="5007"/>
@@ -605,7 +531,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_VKA6lgcUEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_VKA6kQcUEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VKA6kgcUEey-kNQ7esRa_g" x="1185" y="138" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VKA6kgcUEey-kNQ7esRa_g" x="1182" y="-228" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_Ml8T0AcsEey-kNQ7esRa_g" type="2003" element="_Mlx7wAcsEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_Ml8T0wcsEey-kNQ7esRa_g" type="5007"/>
@@ -614,11 +540,19 @@
               <styles xmi:type="notation:FontStyle" xmi:id="_SqgeUQcsEey-kNQ7esRa_g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_SqgeUgcsEey-kNQ7esRa_g"/>
             </children>
+            <children xmi:type="notation:Node" xmi:id="_91n0IBr1EeyPOIo-WqURQQ" type="3010" element="_91YjkBr1EeyPOIo-WqURQQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_91n0IRr1EeyPOIo-WqURQQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_91n0Ihr1EeyPOIo-WqURQQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_iS0HQCXpEeyb5750APOSQw" type="3010" element="_iRkKECXpEeyb5750APOSQw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_iS0HQSXpEeyb5750APOSQw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_iS0HQiXpEeyb5750APOSQw"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_Ml864QcsEey-kNQ7esRa_g"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_Ml864gcsEey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_Ml8T0QcsEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ml8T0gcsEey-kNQ7esRa_g" x="432" y="572" width="141" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ml8T0gcsEey-kNQ7esRa_g" x="468" y="475" width="141" height="100"/>
         </children>
         <children xmi:type="notation:Shape" xmi:id="_KThIwActEey-kNQ7esRa_g" type="Note" fontName="Segoe UI" description="zB Bluetooth-Sensor Referenzpositionen" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
           <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KThIwQctEey-kNQ7esRa_g" source="specificStyles">
@@ -633,7 +567,7 @@
           <styles xmi:type="notation:TextStyle" xmi:id="_KThIwwctEey-kNQ7esRa_g" textAlignment="Center"/>
           <styles xmi:type="notation:LineTypeStyle" xmi:id="_KThIxActEey-kNQ7esRa_g"/>
           <element xsi:nil="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KThIxQctEey-kNQ7esRa_g" x="1992" y="546"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KThIxQctEey-kNQ7esRa_g" x="2016" y="480"/>
         </children>
         <children xmi:type="notation:Shape" xmi:id="_fXJ6oActEey-kNQ7esRa_g" type="Note" fontName="Segoe UI" description="EventFilterConfiguration - Mehrdeutigkeiten: Mehrere Positionssensoren pro Agent. Eine Strategie ist optimizeMeasurementError (Sensordatenfusion). Ein ambigruityParameter ist dann ambiguityToleranceInterval, also wie weit dürfen zwei Sensorwerte zeitlich auseinander liegen für Sensordatenfusion" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
           <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fXJ6oQctEey-kNQ7esRa_g" source="specificStyles">
@@ -657,14 +591,6 @@
               <styles xmi:type="notation:FontStyle" xmi:id="_1t7TQRE8EeydeasO1RaQEg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_1t7TQhE8EeydeasO1RaQEg"/>
             </children>
-            <children xmi:type="notation:Node" xmi:id="_GKgacBE9EeydeasO1RaQEg" type="3010" element="_GJ1sEBE9EeydeasO1RaQEg">
-              <styles xmi:type="notation:FontStyle" xmi:id="_GKgacRE9EeydeasO1RaQEg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_GKgachE9EeydeasO1RaQEg"/>
-            </children>
-            <children xmi:type="notation:Node" xmi:id="_RTTT0BE9EeydeasO1RaQEg" type="3010" element="_RSvTIBE9EeydeasO1RaQEg">
-              <styles xmi:type="notation:FontStyle" xmi:id="_RTTT0RE9EeydeasO1RaQEg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_RTTT0hE9EeydeasO1RaQEg"/>
-            </children>
             <children xmi:type="notation:Node" xmi:id="_Wz2yUBE9EeydeasO1RaQEg" type="3010" element="_WzdJsBE9EeydeasO1RaQEg">
               <styles xmi:type="notation:FontStyle" xmi:id="_Wz2yURE9EeydeasO1RaQEg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_Wz2yUhE9EeydeasO1RaQEg"/>
@@ -693,11 +619,23 @@
               <styles xmi:type="notation:FontStyle" xmi:id="_1GpwsRFkEeydeasO1RaQEg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_1GpwshFkEeydeasO1RaQEg"/>
             </children>
+            <children xmi:type="notation:Node" xmi:id="_eKDl0B_NEeyaJIyxidrtuQ" type="3010" element="_eIgtsB_NEeyaJIyxidrtuQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_eKDl0R_NEeyaJIyxidrtuQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_eKDl0h_NEeyaJIyxidrtuQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_iWqJIB_NEeyaJIyxidrtuQ" type="3010" element="_iWX1QB_NEeyaJIyxidrtuQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_iWqJIR_NEeyaJIyxidrtuQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_iWqJIh_NEeyaJIyxidrtuQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Fx5DEIThEeybc9Dj6t-c7Q" type="3010" element="_Fvq1gIThEeybc9Dj6t-c7Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Fx5DEYThEeybc9Dj6t-c7Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Fx5DEoThEeybc9Dj6t-c7Q"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_D9ZrhQc-Eey-kNQ7esRa_g"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_D9Zrhgc-Eey-kNQ7esRa_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_D9ZrgQc-Eey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9Zrggc-Eey-kNQ7esRa_g" x="2635" y="502" width="185" height="240"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9Zrggc-Eey-kNQ7esRa_g" x="2724" y="-299" width="185" height="356"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_KIxxkBFjEeydeasO1RaQEg" type="2003" element="_KHc74BFjEeydeasO1RaQEg">
           <children xmi:type="notation:Node" xmi:id="_KI2DABFjEeydeasO1RaQEg" type="5007"/>
@@ -710,7 +648,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_KI4fQhFjEeydeasO1RaQEg"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_KIxxkRFjEeydeasO1RaQEg" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KIxxkhFjEeydeasO1RaQEg" x="2165" y="751" width="140" height="50"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KIxxkhFjEeydeasO1RaQEg" x="2165" y="751" width="160" height="116"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_1eTRIBFjEeydeasO1RaQEg" type="2003" element="_1d2lMBFjEeydeasO1RaQEg">
           <children xmi:type="notation:Node" xmi:id="_1eTRIxFjEeydeasO1RaQEg" type="5007"/>
@@ -723,7 +661,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_1eT4MhFjEeydeasO1RaQEg"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_1eTRIRFjEeydeasO1RaQEg" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1eTRIhFjEeydeasO1RaQEg" x="2342" y="751" width="140" height="50"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1eTRIhFjEeydeasO1RaQEg" x="2342" y="751" width="140" height="92"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_RzygABFkEeydeasO1RaQEg" type="2003" element="_RzioYBFkEeydeasO1RaQEg">
           <children xmi:type="notation:Node" xmi:id="_RzzHEBFkEeydeasO1RaQEg" type="5007"/>
@@ -736,7 +674,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_RzzHExFkEeydeasO1RaQEg"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_RzygARFkEeydeasO1RaQEg" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RzygAhFkEeydeasO1RaQEg" x="2910" y="751" width="140" height="50"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RzygAhFkEeydeasO1RaQEg" x="2910" y="751" width="171" height="104"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_bpQwUBFkEeydeasO1RaQEg" type="2003" element="_bo-ccBFkEeydeasO1RaQEg">
           <children xmi:type="notation:Node" xmi:id="_bpQwUxFkEeydeasO1RaQEg" type="5007"/>
@@ -762,7 +700,105 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_I2AawxFmEeydeasO1RaQEg"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_I1_zsRFmEeydeasO1RaQEg" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I1_zshFmEeydeasO1RaQEg" x="2535" y="751" width="140" height="50"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I1_zshFmEeydeasO1RaQEg" x="2535" y="751" width="140" height="86"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_Q9NrECxEEeyc2bacnWuMrg" type="2003" element="_Q7S_gCxEEeyc2bacnWuMrg">
+          <children xmi:type="notation:Node" xmi:id="_Q9SjkCxEEeyc2bacnWuMrg" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_Q9TKoCxEEeyc2bacnWuMrg" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_dww2ECxEEeyc2bacnWuMrg" type="3010" element="_dwRt4CxEEeyc2bacnWuMrg">
+              <styles xmi:type="notation:FontStyle" xmi:id="_dww2ESxEEeyc2bacnWuMrg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_dww2EixEEeyc2bacnWuMrg"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_hNpMoCxEEeyc2bacnWuMrg" type="3010" element="_hNSnUCxEEeyc2bacnWuMrg">
+              <styles xmi:type="notation:FontStyle" xmi:id="_hNpMoSxEEeyc2bacnWuMrg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_hNpMoixEEeyc2bacnWuMrg"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_Q9TKoSxEEeyc2bacnWuMrg"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_Q9TKoixEEeyc2bacnWuMrg"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_Q9NrESxEEeyc2bacnWuMrg" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q9NrEixEEeyc2bacnWuMrg" x="1506" y="306" width="171" height="75"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_ipaesCxSEeyc2bacnWuMrg" type="2003" element="_ipG8sCxSEeyc2bacnWuMrg">
+          <children xmi:type="notation:Node" xmi:id="_ipbFwCxSEeyc2bacnWuMrg" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_ipbFwSxSEeyc2bacnWuMrg" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_WEJAsDC6Eeys5_IXgF_hBA" type="3010" element="_WDgukDC6Eeys5_IXgF_hBA">
+              <styles xmi:type="notation:FontStyle" xmi:id="_WEJAsTC6Eeys5_IXgF_hBA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_WEJAsjC6Eeys5_IXgF_hBA"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_ipbFwixSEeyc2bacnWuMrg"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_ipbFwyxSEeyc2bacnWuMrg"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_ipaesSxSEeyc2bacnWuMrg" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ipaesixSEeyc2bacnWuMrg" x="1806" y="714" width="195" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_-3jIcJSJEeyJ0bON1VCj7g" type="2003" element="_-2weQJSJEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_-3jvgJSJEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_-3jvgZSJEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_E3gfwJSKEeyJ0bON1VCj7g" type="3010" element="_E3M9wJSKEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_E3gfwZSKEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_E3gfwpSKEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_gVeQwJSKEeyJ0bON1VCj7g" type="3010" element="_gVMj8JSKEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_gVeQwZSKEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_gVeQwpSKEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_R2M8EJSQEeyJ0bON1VCj7g" type="3010" element="_R19rgJSQEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_R2M8EZSQEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_R2M8EpSQEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_YXErQJSUEeyJ0bON1VCj7g" type="3010" element="_YW1asJSUEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YXErQZSUEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YXErQpSUEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_5dKL8JriEeybDM53IXNodQ" type="3010" element="_5c0NsJriEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_5dKL8ZriEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_5dKL8priEeybDM53IXNodQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_-3jvgpSJEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_-3jvg5SJEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_-3jIcZSJEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-3jIcpSJEeyJ0bON1VCj7g" x="1477" y="642" width="190" height="142"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_swdx1JSKEeyJ0bON1VCj7g" type="2003" element="_swMsEJSKEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_swdx15SKEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_sweY4JSKEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_sweY45SKEeyJ0bON1VCj7g" type="3010" element="_swUA0pSKEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_sweY5JSKEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8" italic="true"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_sweY5ZSKEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_sweY4ZSKEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_sweY4pSKEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_swdx1ZSKEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_swdx1pSKEeyJ0bON1VCj7g" x="2406" y="937" width="140" height="62"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_-HZlMJosEeybDM53IXNodQ" type="2003" element="_-GdxEJosEeybDM53IXNodQ">
+          <children xmi:type="notation:Node" xmi:id="_-HfEwJosEeybDM53IXNodQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_-Hfr0JosEeybDM53IXNodQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_-HhhAJosEeybDM53IXNodQ" type="3010" element="_-G09cJosEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_-HhhAZosEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8" italic="true"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_-HhhAposEeybDM53IXNodQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_-Hfr0ZosEeybDM53IXNodQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_-Hfr0posEeybDM53IXNodQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_-HZlMZosEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HZlMposEeybDM53IXNodQ" x="2715" y="924" width="276" height="141"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_evlZ8KEgEeyjYoAVD5IwbQ" type="2003" element="_evTGEKEgEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_evlZ86EgEeyjYoAVD5IwbQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_evlZ9KEgEeyjYoAVD5IwbQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_evmBAKEgEeyjYoAVD5IwbQ" type="3010" element="_evdeJKEgEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_evmBAaEgEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8" italic="true"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_evmBAqEgEeyjYoAVD5IwbQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_evlZ9aEgEeyjYoAVD5IwbQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_evlZ9qEgEeyjYoAVD5IwbQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_evlZ8aEgEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_evlZ8qEgEeyjYoAVD5IwbQ" x="2232" y="967" width="140" height="50"/>
         </children>
         <styles xmi:type="notation:DiagramStyle" xmi:id="_EuqzogQNEey-kNQ7esRa_g"/>
         <edges xmi:type="notation:Edge" xmi:id="_slHHwAQOEey-kNQ7esRa_g" type="4001" element="_sk66gAQOEey-kNQ7esRa_g" source="_OVBp4AQNEey-kNQ7esRa_g" target="_hS0UIAQOEey-kNQ7esRa_g">
@@ -781,70 +817,22 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_slKyIAQOEey-kNQ7esRa_g" id="(0.6101694915254238,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_slKyIQQOEey-kNQ7esRa_g" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_idWLkAQkEey-kNQ7esRa_g" type="4001" element="_idHiEAQkEey-kNQ7esRa_g" source="_UOFQgAQkEey-kNQ7esRa_g" target="_SIv7sAQkEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_idWyoAQkEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_idWyoQQkEey-kNQ7esRa_g" x="-10" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_idWyogQkEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_idWyowQkEey-kNQ7esRa_g" x="-14" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_idWypAQkEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_idWypQQkEey-kNQ7esRa_g" x="-16"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_idWLkQQkEey-kNQ7esRa_g" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_idWLkgQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_idWLkwQkEey-kNQ7esRa_g" points="[0, 22, -206, -9]$[0, 23, -206, -8]$[187, 23, -19, -8]$[187, -18, -19, -49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_idWypgQkEey-kNQ7esRa_g" id="(1.0,0.1836734693877551)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_idWypwQkEey-kNQ7esRa_g" id="(0.15172413793103448,0.4489795918367347)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_jdZ6YAQkEey-kNQ7esRa_g" type="4001" element="_jdJbsAQkEey-kNQ7esRa_g" source="_VW89EAQkEey-kNQ7esRa_g" target="_aKkdFgQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_jdZ6ZAQkEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jdZ6ZQQkEey-kNQ7esRa_g" x="6" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jdZ6ZQQkEey-kNQ7esRa_g" x="-10" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_jdZ6ZgQkEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jdZ6ZwQkEey-kNQ7esRa_g" x="70" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jdZ6ZwQkEey-kNQ7esRa_g" x="44" y="-59"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_jdZ6aAQkEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jdZ6aQQkEey-kNQ7esRa_g" x="27" y="-17"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jdZ6aQQkEey-kNQ7esRa_g" x="22" y="21"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_jdZ6YQQkEey-kNQ7esRa_g" routing="Tree"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_jdZ6YgQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jdZ6YwQkEey-kNQ7esRa_g" points="[0, 0, 160, 39]$[0, -102, 160, -63]$[-174, -102, -14, -63]$[-174, -78, -14, -39]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jdahcAQkEey-kNQ7esRa_g" id="(0.22033898305084745,0.02040816326530612)"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jdZ6YwQkEey-kNQ7esRa_g" points="[0, -51, 0, 93]$[0, -75, 0, 69]$[-63, -75, -63, 69]$[-63, -85, -63, 59]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jdahcAQkEey-kNQ7esRa_g" id="(0.4491525423728814,0.21428571428571427)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jdahcQQkEey-kNQ7esRa_g" id="(0.9830508474576272,0.3979591836734694)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_lXoLYAQkEey-kNQ7esRa_g" type="4001" element="_lXawBgQkEey-kNQ7esRa_g" source="_11mPIAQjEey-kNQ7esRa_g" target="_fodekAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_lXoycAQkEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXoycQQkEey-kNQ7esRa_g" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_lXoycgQkEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXoycwQkEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_lXoydAQkEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXoydQQkEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_lXoLYQQkEey-kNQ7esRa_g" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_lXoLYgQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lXoLYwQkEey-kNQ7esRa_g" points="[0, 0, -67, 108]$[67, -108, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lXoydgQkEey-kNQ7esRa_g" id="(0.5,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lXoydwQkEey-kNQ7esRa_g" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_lyh-sAQkEey-kNQ7esRa_g" type="4001" element="_lyTVNgQkEey-kNQ7esRa_g" source="_37e9kAQjEey-kNQ7esRa_g" target="_fodekAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_lyh-tAQkEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyh-tQQkEey-kNQ7esRa_g" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_lyh-tgQkEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyh-twQkEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_lyilwAQkEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lyilwQQkEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_lyh-sQQkEey-kNQ7esRa_g" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_lyh-sgQkEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lyh-swQkEey-kNQ7esRa_g" points="[0, 0, 99, 72]$[-99, -72, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lyilwgQkEey-kNQ7esRa_g" id="(0.5677966101694916,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lyilwwQkEey-kNQ7esRa_g" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_s-PXcAQkEey-kNQ7esRa_g" type="4001" element="_s-J3-AQkEey-kNQ7esRa_g" source="_Pg1TsAQjEey-kNQ7esRa_g" target="_hS0UIAQOEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_s-PXdAQkEey-kNQ7esRa_g" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s-PXdQQkEey-kNQ7esRa_g" y="-10"/>
@@ -863,157 +851,61 @@
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_-D87MAQkEey-kNQ7esRa_g" type="4001" element="_-DqnUAQkEey-kNQ7esRa_g" source="_OVBp4AQNEey-kNQ7esRa_g" target="_Pg1TsAQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_-D87NAQkEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-D87NQQkEey-kNQ7esRa_g" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-D87NQQkEey-kNQ7esRa_g" x="-3" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_-D87NgQkEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-D87NwQkEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-D87NwQkEey-kNQ7esRa_g" x="-5" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_-D87OAQkEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-D87OQQkEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-D87OQQkEey-kNQ7esRa_g" x="-5" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_-D87MQQkEey-kNQ7esRa_g" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_-D87MgQkEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-D87MwQkEey-kNQ7esRa_g" points="[0, 0, -212, 0]$[212, 0, 0, 0]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-D87MwQkEey-kNQ7esRa_g" points="[0, -6, -122, 0]$[122, -6, 0, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-D9iQAQkEey-kNQ7esRa_g" id="(1.0,0.12244897959183673)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-D9iQQQkEey-kNQ7esRa_g" id="(0.0,0.12244897959183673)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="__-O2kAQkEey-kNQ7esRa_g" type="4001" element="__99JwAQkEey-kNQ7esRa_g" source="_Pg1TsAQjEey-kNQ7esRa_g" target="_ZOlLYwQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="__-O2lAQkEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__-O2lQQkEey-kNQ7esRa_g" x="3"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="__-O2lgQkEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__-O2lwQkEey-kNQ7esRa_g" x="4" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="__-O2mAQkEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__-O2mQQkEey-kNQ7esRa_g" x="-79" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="__-O2kQQkEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="__-O2kgQkEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__-O2kwQkEey-kNQ7esRa_g" points="[0, 36, 102, -90]$[-36, 36, 66, -90]$[-36, 150, 66, 24]$[-56, 150, 46, 24]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__-PdoAQkEey-kNQ7esRa_g" id="(0.0,0.12244897959183673)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__-PdoQQkEey-kNQ7esRa_g" id="(0.6101694915254238,0.0)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_JBhcAAQlEey-kNQ7esRa_g" type="4001" element="_JBUntgQlEey-kNQ7esRa_g" source="_OVBp4AQNEey-kNQ7esRa_g" target="_C_NUQAQlEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_JBiDEAQlEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JBiDEQQlEey-kNQ7esRa_g" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_JBiDEgQlEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JBiDEwQlEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_JBiDFAQlEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JBiDFQQlEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_JBhcAQQlEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_JBhcAgQlEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JBhcAwQlEey-kNQ7esRa_g" points="[0, 0, 128, 0]$[-128, 0, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JBiDFgQlEey-kNQ7esRa_g" id="(0.0,0.030612244897959183)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JBiDFwQlEey-kNQ7esRa_g" id="(1.0,0.030612244897959183)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_NKA7YAQlEey-kNQ7esRa_g" type="4001" element="_NJv1oAQlEey-kNQ7esRa_g" source="_Pg1TsAQjEey-kNQ7esRa_g" target="_beL2gAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_NKA7ZAQlEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NKA7ZQQlEey-kNQ7esRa_g" x="10" y="-9"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_NKA7ZgQlEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NKA7ZwQlEey-kNQ7esRa_g" x="24" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_NKBicAQlEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NKBicQQlEey-kNQ7esRa_g" x="-24" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_NKA7YQQlEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_NKA7YgQlEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NKA7YwQlEey-kNQ7esRa_g" points="[0, 0, 0, -148]$[0, 148, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKBicgQlEey-kNQ7esRa_g" id="(0.7034482758620689,1.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NKBicwQlEey-kNQ7esRa_g" id="(0.711864406779661,0.0)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_OlUbwAQlEey-kNQ7esRa_g" type="4001" element="_OlBg0AQlEey-kNQ7esRa_g" source="_beL2gAQjEey-kNQ7esRa_g" target="_fodekAQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_OlUbxAQlEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlUbxQQlEey-kNQ7esRa_g" x="-2" y="-6"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlUbxQQlEey-kNQ7esRa_g" y="50"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_OlUbxgQlEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlUbxwQlEey-kNQ7esRa_g" x="-6" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlUbxwQlEey-kNQ7esRa_g" x="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_OlVC0AQlEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlVC0QQlEey-kNQ7esRa_g" x="-36" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlVC0QQlEey-kNQ7esRa_g" x="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_OlUbwQQlEey-kNQ7esRa_g" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_OlUbwgQlEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OlUbwwQlEey-kNQ7esRa_g" points="[0, 0, 0, -64]$[0, 64, 0, 0]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OlUbwwQlEey-kNQ7esRa_g" points="[0, 0, 0, -35]$[0, 35, 0, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OlVC0gQlEey-kNQ7esRa_g" id="(0.5338983050847458,1.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OlVC0wQlEey-kNQ7esRa_g" id="(0.5338983050847458,0.0)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_S3n-cAQlEey-kNQ7esRa_g" type="4001" element="_S3W4sAQlEey-kNQ7esRa_g" source="_beL2gAQjEey-kNQ7esRa_g" target="_hdV8kAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_S3n-dAQlEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S3n-dQQlEey-kNQ7esRa_g" x="10" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_S3olgAQlEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S3olgQQlEey-kNQ7esRa_g" x="47" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_S3olggQlEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S3olgwQlEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_S3n-cQQlEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_S3n-cgQlEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_S3n-cwQlEey-kNQ7esRa_g" points="[0, 12, -197, 66]$[149, 12, -48, 66]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S3pMkAQlEey-kNQ7esRa_g" id="(1.0,0.12244897959183673)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S3pMkQQlEey-kNQ7esRa_g" id="(0.4067796610169492,0.0)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_cJyGUAQlEey-kNQ7esRa_g" type="4001" element="_cJaS5gQlEey-kNQ7esRa_g" source="_11mPIAQjEey-kNQ7esRa_g" target="_738MEAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_cJyGVAQlEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cJyGVQQlEey-kNQ7esRa_g" x="-10" y="1"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_cJyGVgQlEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cJyGVwQlEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_cJyGWAQlEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cJyGWQQlEey-kNQ7esRa_g" x="-2" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_cJyGUQQlEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_cJyGUgQlEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cJyGUwQlEey-kNQ7esRa_g" points="[0, 0, 0, -82]$[0, 82, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cJytYAQlEey-kNQ7esRa_g" id="(0.5,1.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cJytYQQlEey-kNQ7esRa_g" id="(0.4057142857142857,0.0)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_g7Vw0AQlEey-kNQ7esRa_g" type="4001" element="_g7KKrAQlEey-kNQ7esRa_g" source="_37e9kAQjEey-kNQ7esRa_g" target="_SIv7sAQkEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_g7Vw1AQlEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g7Vw1QQlEey-kNQ7esRa_g" x="-42" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_g7Vw1gQlEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g7Vw1wQlEey-kNQ7esRa_g" x="-89"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_g7WX4AQlEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g7WX4QQlEey-kNQ7esRa_g" x="-2"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_g7Vw0QQlEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_g7Vw0gQlEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g7Vw0wQlEey-kNQ7esRa_g" points="[-59, 50, 431, 315]$[-143, 50, 347, 315]$[-143, 312, 347, 577]$[-562, 312, -72, 577]$[-562, -178, -72, 87]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g7WX4gQlEey-kNQ7esRa_g" id="(0.5,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g7WX4wQlEey-kNQ7esRa_g" id="(1.0,0.11224489795918367)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_i57kcAQlEey-kNQ7esRa_g" type="4001" element="_i5qetgQlEey-kNQ7esRa_g" source="_UOFQgAQkEey-kNQ7esRa_g" target="_XZkVEAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_i57kdAQlEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i57kdQQlEey-kNQ7esRa_g" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i57kdQQlEey-kNQ7esRa_g" y="-39"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_i57kdgQlEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i57kdwQlEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i57kdwQlEey-kNQ7esRa_g" x="12" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_i57keAQlEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i57keQQlEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i57keQQlEey-kNQ7esRa_g" x="-18" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_i57kcQQlEey-kNQ7esRa_g" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_i57kcgQlEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i57kcwQlEey-kNQ7esRa_g" points="[0, 0, 0, -40]$[0, 40, 0, 0]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i57kcwQlEey-kNQ7esRa_g" points="[0, 0, 0, -45]$[0, 45, 0, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i58LgAQlEey-kNQ7esRa_g" id="(0.5,1.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i58LgQQlEey-kNQ7esRa_g" id="(0.5,0.0)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_j8yvoAQlEey-kNQ7esRa_g" type="4001" element="_j8d_gAQlEey-kNQ7esRa_g" source="_VW89EAQkEey-kNQ7esRa_g" target="_UOFQgAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_j8yvpAQlEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j8yvpQQlEey-kNQ7esRa_g" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j8yvpQQlEey-kNQ7esRa_g" x="-7" y="-30"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_j8yvpgQlEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j8yvpwQlEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j8yvpwQlEey-kNQ7esRa_g" x="-5" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_j8yvqAQlEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j8yvqQQlEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j8yvqQQlEey-kNQ7esRa_g" x="-43" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_j8yvoQQlEey-kNQ7esRa_g" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_j8yvogQlEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
@@ -1021,35 +913,19 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_j8yvqgQlEey-kNQ7esRa_g" id="(0.5,1.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_j8yvqwQlEey-kNQ7esRa_g" id="(0.5,0.0)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_YoEukAQvEey-kNQ7esRa_g" type="4001" element="_Yn8yzAQvEey-kNQ7esRa_g" source="_OVBp4AQNEey-kNQ7esRa_g" target="_ZOlLYwQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_YoFVoAQvEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YoFVoQQvEey-kNQ7esRa_g" x="3" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_YoFVogQvEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YoFVowQvEey-kNQ7esRa_g" x="1" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_YoFVpAQvEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YoFVpQQvEey-kNQ7esRa_g" x="-1" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_YoEukQQvEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_YoEukgQvEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YoEukwQvEey-kNQ7esRa_g" points="[0, 0, -132, -40]$[0, 20, -132, -20]$[132, 20, 0, -20]$[132, 40, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YoFVpgQvEey-kNQ7esRa_g" id="(0.5,1.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YoFVpwQvEey-kNQ7esRa_g" id="(0.2966101694915254,0.0)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_t9tkgAQxEey-kNQ7esRa_g" type="4001" element="_t9fiEwQxEey-kNQ7esRa_g" source="_SIv7sAQkEey-kNQ7esRa_g" target="_beL2gAQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_t9uLkAQxEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t9uLkQQxEey-kNQ7esRa_g" x="1" y="3"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t9uLkQQxEey-kNQ7esRa_g" x="-43" y="-30"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_t9uLkgQxEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t9uLkwQxEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t9uLkwQxEey-kNQ7esRa_g" x="-26" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_t9uLlAQxEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t9uLlQQxEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t9uLlQQxEey-kNQ7esRa_g" x="-4" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_t9tkgQQxEey-kNQ7esRa_g" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_t9tkggQxEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t9tkgwQxEey-kNQ7esRa_g" points="[0, 0, -293, 65]$[146, 0, -147, 65]$[146, -65, -147, 0]$[293, -65, 0, 0]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t9tkgwQxEey-kNQ7esRa_g" points="[0, 0, -251, 36]$[110, 0, -141, 36]$[110, -36, -141, 0]$[251, -36, 0, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t9uLlgQxEey-kNQ7esRa_g" id="(1.0,0.12244897959183673)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t9uLlwQxEey-kNQ7esRa_g" id="(0.0,0.4387755102040816)"/>
         </edges>
@@ -1069,22 +945,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-HyUdgT3Eey-kNQ7esRa_g" id="(0.3481749802464828,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-HyUdwT3Eey-kNQ7esRa_g" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_DvLwoAWOEey-kNQ7esRa_g" type="4001" element="_N_3LvAWNEey-kNQ7esRa_g" source="_37e9kAQjEey-kNQ7esRa_g" target="_lk5_0AWMEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_DvMXsAWOEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DvMXsQWOEey-kNQ7esRa_g" x="-76" y="-9"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_DvMXsgWOEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DvMXswWOEey-kNQ7esRa_g" x="1" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_DvMXtAWOEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DvMXtQWOEey-kNQ7esRa_g" x="-133" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_DvLwoQWOEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_DvLwogWOEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DvLwowWOEey-kNQ7esRa_g" points="[16, -1, -242, 0]$[258, -1, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DvNl0AWOEey-kNQ7esRa_g" id="(0.864406779661017,0.17346938775510204)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DvNl0QWOEey-kNQ7esRa_g" id="(0.0,0.16326530612244897)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_M1yv0AWOEey-kNQ7esRa_g" type="4001" element="_M1gb_AWOEey-kNQ7esRa_g" source="_Ecj4gAQkEey-kNQ7esRa_g" target="_lk5_0AWMEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_M1yv1AWOEey-kNQ7esRa_g" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M1yv1QWOEey-kNQ7esRa_g" y="-10"/>
@@ -1117,54 +977,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NUMjEgWOEey-kNQ7esRa_g" id="(0.6610169491525424,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NUMjEwWOEey-kNQ7esRa_g" id="(0.0,0.16326530612244897)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_oPAegAWgEey-kNQ7esRa_g" type="4001" element="_oOv_0AWgEey-kNQ7esRa_g" source="_ZOlLYwQjEey-kNQ7esRa_g" target="_OVBp4AQNEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_oPAehAWgEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oPAehQWgEey-kNQ7esRa_g" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_oPAehgWgEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oPAehwWgEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_oPAeiAWgEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oPAeiQWgEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_oPAegQWgEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_oPAeggWgEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oPAegwWgEey-kNQ7esRa_g" points="[0, 0, 120, 82]$[-120, 0, 0, 82]$[-120, -82, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oPBFkAWgEey-kNQ7esRa_g" id="(0.0,0.42857142857142855)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oPBFkQWgEey-kNQ7esRa_g" id="(0.3050847457627119,1.0)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_p5GBwAWgEey-kNQ7esRa_g" type="4001" element="_p4wqlgWgEey-kNQ7esRa_g" source="_ZOlLYwQjEey-kNQ7esRa_g" target="_Pg1TsAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_p5GBxAWgEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p5GBxQWgEey-kNQ7esRa_g" x="9" y="-11"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_p5Go0AWgEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p5Go0QWgEey-kNQ7esRa_g" x="4" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_p5Go0gWgEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p5Go0wWgEey-kNQ7esRa_g" x="-4" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_p5GBwQWgEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_p5GBwgWgEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_p5GBwwWgEey-kNQ7esRa_g" points="[0, 0, -116, 89]$[86, 0, -30, 89]$[86, -89, -30, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p5Go1AWgEey-kNQ7esRa_g" id="(1.0,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p5Go1QWgEey-kNQ7esRa_g" id="(0.41379310344827586,1.0)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3iJRYAWgEey-kNQ7esRa_g" type="4001" element="_3h3klgWgEey-kNQ7esRa_g" source="_ZOlLYwQjEey-kNQ7esRa_g" target="_hS0UIAQOEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_3iJ4cAWgEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3iJ4cQWgEey-kNQ7esRa_g" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3iJ4cgWgEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3iJ4cwWgEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3iJ4dAWgEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3iJ4dQWgEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3iJRYQWgEey-kNQ7esRa_g" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3iJRYgWgEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3iJRYwWgEey-kNQ7esRa_g" points="[0, 0, 5, 184]$[-5, -184, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3iJ4dgWgEey-kNQ7esRa_g" id="(0.5,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3iJ4dwWgEey-kNQ7esRa_g" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_Oe-kEAWiEey-kNQ7esRa_g" type="4001" element="_OeuFcgWiEey-kNQ7esRa_g" source="_FeuEgAWiEey-kNQ7esRa_g" target="_DsJToAWiEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_Oe-kFAWiEey-kNQ7esRa_g" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Oe-kFQWiEey-kNQ7esRa_g" y="-10"/>
@@ -1197,35 +1009,19 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PAtYIAWiEey-kNQ7esRa_g" id="(0.6101694915254238,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PAtYIQWiEey-kNQ7esRa_g" id="(0.6068965517241379,1.0)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_cCGVYAWjEey-kNQ7esRa_g" type="4001" element="_cB2dzAWjEey-kNQ7esRa_g" source="_NxDRoAWjEey-kNQ7esRa_g" target="_Sn_ycAWjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_cCGVZAWjEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cCG8cAWjEey-kNQ7esRa_g" x="3" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_cCG8cQWjEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cCG8cgWjEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_cCG8cwWjEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cCG8dAWjEey-kNQ7esRa_g" x="-37" y="-15"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_cCGVYQWjEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_cCGVYgWjEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cCGVYwWjEey-kNQ7esRa_g" points="[0, 0, 49, -58]$[0, 14, 49, -44]$[-49, 14, 0, -44]$[-49, 58, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cCG8dQWjEey-kNQ7esRa_g" id="(0.5,1.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cCG8dgWjEey-kNQ7esRa_g" id="(0.5423728813559322,0.0)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_cxxe0AWjEey-kNQ7esRa_g" type="4001" element="_cxcusAWjEey-kNQ7esRa_g" source="_NxDRoAWjEey-kNQ7esRa_g" target="_YPBsYAWjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_cxyF4AWjEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxyF4QWjEey-kNQ7esRa_g" x="-21" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxyF4QWjEey-kNQ7esRa_g" x="-10" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_cxyF4gWjEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxyF4wWjEey-kNQ7esRa_g" x="-14" y="-2"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxyF4wWjEey-kNQ7esRa_g" x="14" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_cxyF5AWjEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxyF5QWjEey-kNQ7esRa_g" x="-24" y="22"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxyF5QWjEey-kNQ7esRa_g" x="-21" y="22"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_cxxe0QWjEey-kNQ7esRa_g" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_cxxe0gWjEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cxxe0wWjEey-kNQ7esRa_g" points="[0, 0, -65, -58]$[0, 14, -65, -44]$[65, 14, 0, -44]$[65, 58, 0, 0]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cxxe0wWjEey-kNQ7esRa_g" points="[0, 0, -65, -81]$[0, 37, -65, -44]$[65, 37, 0, -44]$[65, 81, 0, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cxyF5gWjEey-kNQ7esRa_g" id="(0.559322033898305,1.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cxyF5wWjEey-kNQ7esRa_g" id="(0.5,0.0)"/>
         </edges>
@@ -1261,22 +1057,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_izFhCgWjEey-kNQ7esRa_g" id="(0.3724137931034483,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_izFhCwWjEey-kNQ7esRa_g" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_T8AZIAaBEey-kNQ7esRa_g" type="4001" element="_T72oPgaBEey-kNQ7esRa_g" source="_ovs3EAZsEey-kNQ7esRa_g" target="__k3HcAWcEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_T8AZJAaBEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T8AZJQaBEey-kNQ7esRa_g" x="253" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_T8AZJgaBEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T8AZJwaBEey-kNQ7esRa_g" x="607" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_T8AZKAaBEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T8AZKQaBEey-kNQ7esRa_g" x="76" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_T8AZIQaBEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_T8AZIgaBEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T8AZIwaBEey-kNQ7esRa_g" points="[0, 6, 722, 6]$[-722, 6, 0, 6]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T8BAMAaBEey-kNQ7esRa_g" id="(0.0,0.10204081632653061)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T8BAMQaBEey-kNQ7esRa_g" id="(1.0,0.16326530612244897)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_0ITFAAaCEey-kNQ7esRa_g" type="4001" element="_0IAKIgaCEey-kNQ7esRa_g" source="_nuczcAaCEey-kNQ7esRa_g" target="_IONsYAZtEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_0ITFBAaCEey-kNQ7esRa_g" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0ITFBQaCEey-kNQ7esRa_g" x="-50" y="2"/>
@@ -1295,33 +1075,33 @@
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_SeUy0AaEEey-kNQ7esRa_g" type="4001" element="_SeKa9gaEEey-kNQ7esRa_g" source="_NNRv8AaEEey-kNQ7esRa_g" target="_OVBp4AQNEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_SeUy1AaEEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeUy1QaEEey-kNQ7esRa_g" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeUy1QaEEey-kNQ7esRa_g" x="-99" y="-9"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_SeUy1gaEEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeUy1waEEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeUy1waEEey-kNQ7esRa_g" x="-35" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_SeUy2AaEEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeUy2QaEEey-kNQ7esRa_g" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeUy2QaEEey-kNQ7esRa_g" x="-26" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_SeUy0QaEEey-kNQ7esRa_g" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_SeUy0gaEEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SeUy0waEEey-kNQ7esRa_g" points="[0, 0, -191, -257]$[191, 0, 0, -257]$[191, 257, 0, 0]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SeUy0waEEey-kNQ7esRa_g" points="[0, 0, -140, -137]$[140, 0, 0, -137]$[140, 137, 0, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SeVZ4AaEEey-kNQ7esRa_g" id="(1.0,0.1326530612244898)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SeVZ4QaEEey-kNQ7esRa_g" id="(0.4576271186440678,0.0)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_fEPKcAaEEey-kNQ7esRa_g" type="4001" element="_fEHOygaEEey-kNQ7esRa_g" source="_NNRv8AaEEey-kNQ7esRa_g" target="_VW89EAQkEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_fEPKdAaEEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fEPKdQaEEey-kNQ7esRa_g" x="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fEPKdQaEEey-kNQ7esRa_g" x="26" y="14"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_fEPKdgaEEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fEPKdwaEEey-kNQ7esRa_g" x="82" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fEPKdwaEEey-kNQ7esRa_g" x="-31" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_fEPxgAaEEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fEPxgQaEEey-kNQ7esRa_g" x="-1" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fEPxgQaEEey-kNQ7esRa_g" x="-96" y="84"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_fEPKcQaEEey-kNQ7esRa_g" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_fEPKcgaEEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fEPKcwaEEey-kNQ7esRa_g" points="[-63, -48, 28, -412]$[-96, -48, -5, -412]$[-96, 172, -5, -192]$[-91, 172, 0, -192]$[-91, 364, 0, 0]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fEPKcwaEEey-kNQ7esRa_g" points="[-3, 0, 187, -34]$[-3, 84, 187, 50]$[-131, 84, 59, 50]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fEPxggaEEey-kNQ7esRa_g" id="(0.5338983050847458,1.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fEPxgwaEEey-kNQ7esRa_g" id="(0.5,0.0)"/>
         </edges>
@@ -1354,7 +1134,7 @@
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_WT7CkQcMEey-kNQ7esRa_g" routing="Tree"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_WT7CkgcMEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
           <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WT7CkwcMEey-kNQ7esRa_g" points="[0, 0, -342, 161]$[342, -161, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WT7CmgcMEey-kNQ7esRa_g" id="(0.559322033898305,0.0)"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WT7CmgcMEey-kNQ7esRa_g" id="(0.5076923076923077,0.057692307692307696)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WT7CmwcMEey-kNQ7esRa_g" id="(0.5,0.5)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_9YKTIAcMEey-kNQ7esRa_g" type="4001" element="_9X2xLAcMEey-kNQ7esRa_g" source="_zBjrsAcMEey-kNQ7esRa_g" target="_DsJToAWiEey-kNQ7esRa_g">
@@ -1387,7 +1167,7 @@
           <styles xmi:type="notation:FontStyle" xmi:id="_Prz0MgcOEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
           <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Prz0MwcOEey-kNQ7esRa_g" points="[0, 0, -54, 11]$[54, -11, 0, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Prz0OgcOEey-kNQ7esRa_g" id="(0.5,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Prz0OwcOEey-kNQ7esRa_g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Prz0OwcOEey-kNQ7esRa_g" id="(0.45384615384615384,0.5288461538461539)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_QKsvoAcOEey-kNQ7esRa_g" type="4001" element="_QKU8MAcOEey-kNQ7esRa_g" source="_K7QPQAcOEey-kNQ7esRa_g" target="_s0mCMAWjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_QKsvpAcOEey-kNQ7esRa_g" type="6001">
@@ -1403,7 +1183,7 @@
           <styles xmi:type="notation:FontStyle" xmi:id="_QKsvogcOEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
           <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QKsvowcOEey-kNQ7esRa_g" points="[0, 0, 18, 103]$[-18, -103, 0, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QKsvqgcOEey-kNQ7esRa_g" id="(0.4406779661016949,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QKsvqwcOEey-kNQ7esRa_g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QKsvqwcOEey-kNQ7esRa_g" id="(0.45384615384615384,0.5288461538461539)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_aEfQgAcUEey-kNQ7esRa_g" type="4001" element="_aEKgcgcUEey-kNQ7esRa_g" source="_VKA6kAcUEey-kNQ7esRa_g" target="_s0mCMAWjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_aEfQhAcUEey-kNQ7esRa_g" type="6001">
@@ -1419,7 +1199,7 @@
           <styles xmi:type="notation:FontStyle" xmi:id="_aEfQggcUEey-kNQ7esRa_g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
           <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aEfQgwcUEey-kNQ7esRa_g" points="[0, 0, 135, 258]$[-135, -258, 0, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aEf3kAcUEey-kNQ7esRa_g" id="(0.5,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aEf3kQcUEey-kNQ7esRa_g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aEf3kQcUEey-kNQ7esRa_g" id="(0.45384615384615384,0.5288461538461539)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_HJJjsAcbEey-kNQ7esRa_g" type="4001" element="_HI0zogcbEey-kNQ7esRa_g" source="_pEG-0AaCEey-kNQ7esRa_g" target="_IONsYAZtEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_HJKKwAcbEey-kNQ7esRa_g" type="6001">
@@ -1437,84 +1217,276 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HJKKxgcbEey-kNQ7esRa_g" id="(0.5,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HJKKxwcbEey-kNQ7esRa_g" id="(0.8851063829787233,0.05128205128205128)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_eXoJkAcoEey-kNQ7esRa_g" type="4001" element="_eXVOvgcoEey-kNQ7esRa_g" source="_YB0RsATxEey-kNQ7esRa_g" target="_hdV8kAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_eXoJlAcoEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eXoJlQcoEey-kNQ7esRa_g" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_eXoJlgcoEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eXoJlwcoEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_eXoJmAcoEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eXoJmQcoEey-kNQ7esRa_g" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_eXoJkQcoEey-kNQ7esRa_g" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_eXoJkgcoEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eXoJkwcoEey-kNQ7esRa_g" points="[0, 0, 113, 0]$[-113, 0, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eXowoAcoEey-kNQ7esRa_g" id="(0.0,0.06542056074766354)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eXowoQcoEey-kNQ7esRa_g" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_oMShkAcoEey-kNQ7esRa_g" type="4001" element="_X6rBlgQlEey-kNQ7esRa_g" source="_fodekAQjEey-kNQ7esRa_g" target="_-LbRoAQjEey-kNQ7esRa_g">
           <children xmi:type="notation:Node" xmi:id="_oMShlAcoEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oMShlQcoEey-kNQ7esRa_g" x="10" y="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oMShlQcoEey-kNQ7esRa_g" x="-29" y="-49"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_oMShlgcoEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oMShlwcoEey-kNQ7esRa_g" x="21" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oMShlwcoEey-kNQ7esRa_g" x="-10" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_oMShmAcoEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oMShmQcoEey-kNQ7esRa_g" x="-69" y="-7"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oMShmQcoEey-kNQ7esRa_g" x="6"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_oMShkQcoEey-kNQ7esRa_g" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_oMShkgcoEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oMShkwcoEey-kNQ7esRa_g" points="[59, 41, -229, 48]$[229, 41, -59, 48]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oMShkwcoEey-kNQ7esRa_g" points="[54, -49, -198, 264]$[54, -77, -198, 236]$[157, -77, -95, 236]$[157, -263, -95, 50]$[193, -263, -59, 50]"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oMTIoQcoEey-kNQ7esRa_g" id="(0.5,0.0)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_RDIQ0AcsEey-kNQ7esRa_g" type="4001" element="_RCvPUgcsEey-kNQ7esRa_g" source="_Ml8T0AcsEey-kNQ7esRa_g" target="_fodekAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_RDIQ1AcsEey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RDIQ1QcsEey-kNQ7esRa_g" y="-10"/>
+        <edges xmi:type="notation:Edge" xmi:id="_omOJEBrzEeyPOIo-WqURQQ" type="4001" element="_ollP6RrzEeyPOIo-WqURQQ" source="_738MEAQjEey-kNQ7esRa_g" target="_lk5_0AWMEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_omTooBrzEeyPOIo-WqURQQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_omTooRrzEeyPOIo-WqURQQ" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_omUPsBrzEeyPOIo-WqURQQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_omUPsRrzEeyPOIo-WqURQQ" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_omVd0BrzEeyPOIo-WqURQQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_omVd0RrzEeyPOIo-WqURQQ" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_omOJERrzEeyPOIo-WqURQQ" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_omOJEhrzEeyPOIo-WqURQQ" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_omOJExrzEeyPOIo-WqURQQ" points="[0, 0, 201, 144]$[-201, -144, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_omX6EBrzEeyPOIo-WqURQQ" id="(0.5028571428571429,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_omX6ERrzEeyPOIo-WqURQQ" id="(0.0,0.16326530612244897)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_r_Uy4BrzEeyPOIo-WqURQQ" type="4001" element="_r-z1gBrzEeyPOIo-WqURQQ" source="_fodekAQjEey-kNQ7esRa_g" target="_lk5_0AWMEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_r_Uy5BrzEeyPOIo-WqURQQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r_Uy5RrzEeyPOIo-WqURQQ" x="-6" y="-49"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_r_Uy5hrzEeyPOIo-WqURQQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r_Uy5xrzEeyPOIo-WqURQQ" x="20" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_r_Uy6BrzEeyPOIo-WqURQQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r_Uy6RrzEeyPOIo-WqURQQ" x="-28" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_r_Uy4RrzEeyPOIo-WqURQQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_r_Uy4hrzEeyPOIo-WqURQQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r_Uy4xrzEeyPOIo-WqURQQ" points="[0, -42, -191, 73]$[92, -42, -99, 73]$[92, -67, -99, 48]$[191, -67, 0, 48]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r_VZ8BrzEeyPOIo-WqURQQ" id="(1.0,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r_VZ8RrzEeyPOIo-WqURQQ" id="(0.0,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_t33o4BrzEeyPOIo-WqURQQ" type="4001" element="_t3gckhrzEeyPOIo-WqURQQ" source="_fodekAQjEey-kNQ7esRa_g" target="_SIv7sAQkEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_t33o5BrzEeyPOIo-WqURQQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t33o5RrzEeyPOIo-WqURQQ" x="-157" y="-9"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_t33o5hrzEeyPOIo-WqURQQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t33o5xrzEeyPOIo-WqURQQ" x="292" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_t33o6BrzEeyPOIo-WqURQQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t33o6RrzEeyPOIo-WqURQQ" x="-9"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_t33o4RrzEeyPOIo-WqURQQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_t33o4hrzEeyPOIo-WqURQQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t33o4xrzEeyPOIo-WqURQQ" points="[36, 38, 287, 79]$[36, 71, 287, 112]$[-341, 71, -90, 112]$[-341, -28, -90, 13]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t34P8BrzEeyPOIo-WqURQQ" id="(0.0,0.6122448979591837)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t34P8RrzEeyPOIo-WqURQQ" id="(1.0,0.8673469387755102)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_ajy4sBsKEeyPOIo-WqURQQ" type="4001" element="_ajhzHRsKEeyPOIo-WqURQQ" source="_NNRv8AaEEey-kNQ7esRa_g" target="_Ml8T0AcsEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_ajy4tBsKEeyPOIo-WqURQQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ajy4tRsKEeyPOIo-WqURQQ" x="-175" y="-28"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_ajy4thsKEeyPOIo-WqURQQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ajy4txsKEeyPOIo-WqURQQ" x="-78" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_ajy4uBsKEeyPOIo-WqURQQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ajy4uRsKEeyPOIo-WqURQQ" x="-114"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_ajy4sRsKEeyPOIo-WqURQQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_ajy4shsKEeyPOIo-WqURQQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ajy4sxsKEeyPOIo-WqURQQ" points="[-22, 0, -275, -353]$[-22, 400, -275, 47]$[183, 400, -70, 47]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ajy4uhsKEeyPOIo-WqURQQ" id="(0.8389830508474576,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ajy4uxsKEeyPOIo-WqURQQ" id="(0.5035971223021583,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9UCkgBsKEeyPOIo-WqURQQ" type="4001" element="_9TmfrBsKEeyPOIo-WqURQQ" source="_NNRv8AaEEey-kNQ7esRa_g" target="_SIv7sAQkEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_9UDLkBsKEeyPOIo-WqURQQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9UDLkRsKEeyPOIo-WqURQQ" x="-103" y="8"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9UDLkhsKEeyPOIo-WqURQQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9UDLkxsKEeyPOIo-WqURQQ" x="9" y="15"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9UDLlBsKEeyPOIo-WqURQQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9UDLlRsKEeyPOIo-WqURQQ" x="-20" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9UCkgRsKEeyPOIo-WqURQQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9UCkghsKEeyPOIo-WqURQQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9UCkgxsKEeyPOIo-WqURQQ" points="[43, -38, -32, -299]$[117, -38, 42, -299]$[117, 261, 42, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9UDLlhsKEeyPOIo-WqURQQ" id="(0.635593220338983,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9UDLlxsKEeyPOIo-WqURQQ" id="(0.3310344827586207,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_cP774BuCEeyPOIo-WqURQQ" type="4001" element="_cPgeFhuCEeyPOIo-WqURQQ" source="_Pg1TsAQjEey-kNQ7esRa_g" target="_OVBp4AQNEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_cP775BuCEeyPOIo-WqURQQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cP775RuCEeyPOIo-WqURQQ" x="3" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_cP775huCEeyPOIo-WqURQQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cP775xuCEeyPOIo-WqURQQ" x="6" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_cP776BuCEeyPOIo-WqURQQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cP776RuCEeyPOIo-WqURQQ" x="5" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_cP774RuCEeyPOIo-WqURQQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_cP774huCEeyPOIo-WqURQQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cP774xuCEeyPOIo-WqURQQ" points="[0, 35, 122, 29]$[-122, 35, 0, 29]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cP8i8BuCEeyPOIo-WqURQQ" id="(0.0,0.1326530612244898)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cP8i8RuCEeyPOIo-WqURQQ" id="(1.0,0.1326530612244898)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_Q-7IYBuHEeyPOIo-WqURQQ" type="4001" element="_Q-uURhuHEeyPOIo-WqURQQ" source="_Pg1TsAQjEey-kNQ7esRa_g" target="_beL2gAQjEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_Q-7IZBuHEeyPOIo-WqURQQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q-7IZRuHEeyPOIo-WqURQQ" x="-1" y="58"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Q-7IZhuHEeyPOIo-WqURQQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q-7IZxuHEeyPOIo-WqURQQ" x="21" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Q-7IaBuHEeyPOIo-WqURQQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q-7IaRuHEeyPOIo-WqURQQ" x="-18" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Q-7IYRuHEeyPOIo-WqURQQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_Q-7IYhuHEeyPOIo-WqURQQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q-7IYxuHEeyPOIo-WqURQQ" points="[-6, 0, -42, -50]$[-6, 50, -42, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q-7IahuHEeyPOIo-WqURQQ" id="(0.503448275862069,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q-7IaxuHEeyPOIo-WqURQQ" id="(0.4661016949152542,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_G-RsUBxXEeyPOIo-WqURQQ" type="4001" element="_G94qwBxXEeyPOIo-WqURQQ" source="_XZkVEAQkEey-kNQ7esRa_g" target="_beL2gAQjEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_G-STYBxXEeyPOIo-WqURQQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G-STYRxXEeyPOIo-WqURQQ" x="-117" y="-13"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_G-STYhxXEeyPOIo-WqURQQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G-STYxxXEeyPOIo-WqURQQ" x="48" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_G-STZBxXEeyPOIo-WqURQQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G-STZRxXEeyPOIo-WqURQQ" x="-7" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_G-RsURxXEeyPOIo-WqURQQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_G-RsUhxXEeyPOIo-WqURQQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_G-RsUxxXEeyPOIo-WqURQQ" points="[31, 50, -566, 171]$[81, 50, -516, 171]$[81, -122, -516, -1]$[597, -122, 0, -1]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G-S6cBxXEeyPOIo-WqURQQ" id="(0.7372881355932204,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G-S6cRxXEeyPOIo-WqURQQ" id="(0.0,0.12244897959183673)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_BMxgQCemEeyTddajI1jY8w" type="4001" element="_RCvPUgcsEey-kNQ7esRa_g" source="_Ml8T0AcsEey-kNQ7esRa_g" target="_beL2gAQjEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_BM41ACemEeyTddajI1jY8w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BM41ASemEeyTddajI1jY8w" x="-18" y="-41"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_BM6DICemEeyTddajI1jY8w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BM6DISemEeyTddajI1jY8w" x="-11" y="-12"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_BNmmsCemEeyTddajI1jY8w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNmmsSemEeyTddajI1jY8w" x="1" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_BMxgQSemEeyTddajI1jY8w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_BMxgQiemEeyTddajI1jY8w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BMxgQyemEeyTddajI1jY8w" points="[0, 0, -82, 91]$[24, 0, -58, 91]$[24, -92, -58, -1]$[77, -92, -5, -1]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNpqACemEeyTddajI1jY8w" id="(1.0,0.1326530612244898)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNpqASemEeyTddajI1jY8w" id="(0.0423728813559322,0.826530612244898)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_r0eocCxEEeyc2bacnWuMrg" type="4001" element="_rz8c8CxEEeyc2bacnWuMrg" source="_lCMqkAZsEey-kNQ7esRa_g" target="_Q9NrECxEEeyc2bacnWuMrg">
+          <children xmi:type="notation:Node" xmi:id="_r0gdoCxEEeyc2bacnWuMrg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r0gdoSxEEeyc2bacnWuMrg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_r0gdoixEEeyc2bacnWuMrg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r0gdoyxEEeyc2bacnWuMrg" x="1" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_r0hEsCxEEeyc2bacnWuMrg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r0hEsSxEEeyc2bacnWuMrg" x="1" y="-10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_r0eocSxEEeyc2bacnWuMrg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_r0eocixEEeyc2bacnWuMrg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r0eocyxEEeyc2bacnWuMrg" points="[-6, 0, 0, 248]$[-6, -248, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r0jg8CxEEeyc2bacnWuMrg" id="(0.6779661016949152,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r0jg8SxEEeyc2bacnWuMrg" id="(0.47337278106508873,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_rXBsgOMUEeylWPfcS0Eglw" type="4001" element="_rWe5_OMUEeylWPfcS0Eglw" source="_YB0RsATxEey-kNQ7esRa_g" target="_hdV8kAQjEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_rXCTkOMUEeylWPfcS0Eglw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rXCTkeMUEeylWPfcS0Eglw" x="31" y="26"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_rXCTkuMUEeylWPfcS0Eglw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rXCTk-MUEeylWPfcS0Eglw" x="76" y="6"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_rXCTlOMUEeylWPfcS0Eglw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rXCTleMUEeylWPfcS0Eglw" x="-1" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_rXBsgeMUEeylWPfcS0Eglw" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_rXBsguMUEeylWPfcS0Eglw" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rXBsg-MUEeylWPfcS0Eglw" points="[0, 0, 58, -52]$[0, 113, 58, 61]$[-52, 113, 6, 61]$[-52, 93, 6, 41]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rXCTluMUEeylWPfcS0Eglw" id="(0.0,0.09345794392523364)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rXCTl-MUEeylWPfcS0Eglw" id="(0.9322033898305084,0.5816326530612245)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_IPuHUOjBEeyhBPt9z4CQLw" type="4001" element="_cB2dzAWjEey-kNQ7esRa_g" source="_NxDRoAWjEey-kNQ7esRa_g" target="_YB0RsATxEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_IPuHVOjBEeyhBPt9z4CQLw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IPuHVejBEeyhBPt9z4CQLw" x="59" y="102"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_IPuHVujBEeyhBPt9z4CQLw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IPuHV-jBEeyhBPt9z4CQLw" x="60"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_IPuuYOjBEeyhBPt9z4CQLw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IPuuYejBEeyhBPt9z4CQLw" x="-25" y="-10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_IPuHUejBEeyhBPt9z4CQLw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_IPuHUujBEeyhBPt9z4CQLw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IPuHU-jBEeyhBPt9z4CQLw" points="[12, 76, 200, -247]$[12, 360, 200, 37]$[-134, 360, 54, 37]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IPuuYujBEeyhBPt9z4CQLw" id="(0.0847457627118644,0.22448979591836735)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IPuuY-jBEeyhBPt9z4CQLw" id="(0.5423728813559322,0.1308411214953271)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_z6Ce4Or1EeyhBPt9z4CQLw" type="4001" element="_S3W4sAQlEey-kNQ7esRa_g" source="_beL2gAQjEey-kNQ7esRa_g" target="_hdV8kAQjEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_z6DF8Or1EeyhBPt9z4CQLw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z6DF8er1EeyhBPt9z4CQLw" x="63" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_z6DF8ur1EeyhBPt9z4CQLw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z6DF8-r1EeyhBPt9z4CQLw" x="19" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_z6DF9Or1EeyhBPt9z4CQLw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z6DF9er1EeyhBPt9z4CQLw" x="1" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_z6Ce4er1EeyhBPt9z4CQLw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_z6Ce4ur1EeyhBPt9z4CQLw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z6Ce4-r1EeyhBPt9z4CQLw" points="[0, 0, -175, 341]$[67, 0, -108, 341]$[67, -336, -108, 5]$[149, -336, -26, 5]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z6DF9ur1EeyhBPt9z4CQLw" id="(1.0,0.12244897959183673)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z6DF9-r1EeyhBPt9z4CQLw" id="(0.22033898305084745,0.6020408163265306)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_AnWfAOr2EeyhBPt9z4CQLw" type="4001" element="_92h2_gccEey-kNQ7esRa_g" source="_lCMqkAZsEey-kNQ7esRa_g" target="_beL2gAQjEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_AnXGEOr2EeyhBPt9z4CQLw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AnXGEer2EeyhBPt9z4CQLw" y="-10"/>
           </children>
-          <children xmi:type="notation:Node" xmi:id="_RDIQ1gcsEey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RDIQ1wcsEey-kNQ7esRa_g" y="10"/>
+          <children xmi:type="notation:Node" xmi:id="_AnXGEur2EeyhBPt9z4CQLw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AnXGE-r2EeyhBPt9z4CQLw" y="10"/>
           </children>
-          <children xmi:type="notation:Node" xmi:id="_RDIQ2AcsEey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RDIQ2QcsEey-kNQ7esRa_g" y="10"/>
+          <children xmi:type="notation:Node" xmi:id="_AnXGFOr2EeyhBPt9z4CQLw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AnXGFer2EeyhBPt9z4CQLw" y="10"/>
           </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_RDIQ0QcsEey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_RDIQ0gcsEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RDIQ0wcsEey-kNQ7esRa_g" points="[0, 0, -119, 0]$[119, 0, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RDI34AcsEey-kNQ7esRa_g" id="(1.0,0.1326530612244898)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RDI34QcsEey-kNQ7esRa_g" id="(0.0,0.030612244897959183)"/>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_AnWfAer2EeyhBPt9z4CQLw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_AnWfAur2EeyhBPt9z4CQLw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AnWfA-r2EeyhBPt9z4CQLw" points="[-60, -2, 756, 145]$[-184, -2, 632, 145]$[-184, -147, 632, 0]$[-770, -147, 46, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AnXGFur2EeyhBPt9z4CQLw" id="(0.5084745762711864,0.1836734693877551)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AnXGF-r2EeyhBPt9z4CQLw" id="(0.6101694915254238,0.11224489795918367)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_JkaXUAc-Eey-kNQ7esRa_g" type="4001" element="_JkOxSgc-Eey-kNQ7esRa_g" source="_IONsYAZtEey-kNQ7esRa_g" target="_D9ZrgAc-Eey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_JkaXVAc-Eey-kNQ7esRa_g" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JkaXVQc-Eey-kNQ7esRa_g" x="-17" y="-10"/>
+        <edges xmi:type="notation:Edge" xmi:id="_Emxh8Or2EeyhBPt9z4CQLw" type="4001" element="_36hE0CxSEeyc2bacnWuMrg" source="_ipaesCxSEeyc2bacnWuMrg" target="_lCMqkAZsEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_EmyJAOr2EeyhBPt9z4CQLw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EmyJAer2EeyhBPt9z4CQLw" x="-97" y="-3"/>
           </children>
-          <children xmi:type="notation:Node" xmi:id="_JkaXVgc-Eey-kNQ7esRa_g" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JkaXVwc-Eey-kNQ7esRa_g" x="7" y="10"/>
+          <children xmi:type="notation:Node" xmi:id="_EmyJAur2EeyhBPt9z4CQLw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EmyJA-r2EeyhBPt9z4CQLw" y="10"/>
           </children>
-          <children xmi:type="notation:Node" xmi:id="_JkaXWAc-Eey-kNQ7esRa_g" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JkaXWQc-Eey-kNQ7esRa_g" x="7" y="9"/>
+          <children xmi:type="notation:Node" xmi:id="_EmyJBOr2EeyhBPt9z4CQLw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EmyJBer2EeyhBPt9z4CQLw" y="10"/>
           </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_JkaXUQc-Eey-kNQ7esRa_g" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_JkaXUgc-Eey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JkaXUwc-Eey-kNQ7esRa_g" points="[0, 0, -78, -119]$[0, 52, -78, -67]$[78, 52, 0, -67]$[78, 79, 0, -40]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JkaXWgc-Eey-kNQ7esRa_g" id="(0.4340425531914894,1.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JkaXWwc-Eey-kNQ7esRa_g" id="(0.5196506550218342,0.1696234031589832)"/>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Emxh8er2EeyhBPt9z4CQLw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_Emxh8ur2EeyhBPt9z4CQLw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Emxh8-r2EeyhBPt9z4CQLw" points="[31, -7, 236, 238]$[31, -245, 236, 0]$[-176, -245, 29, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EmyJBur2EeyhBPt9z4CQLw" id="(0.0,0.07142857142857142)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EmyJB-r2EeyhBPt9z4CQLw" id="(0.7542372881355932,0.20408163265306123)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_pBGXIBFDEeydeasO1RaQEg" type="4001" element="_92h2_gccEey-kNQ7esRa_g" source="_lCMqkAZsEey-kNQ7esRa_g" target="_beL2gAQjEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_pBVAoBFDEeydeasO1RaQEg" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pBVAoRFDEeydeasO1RaQEg" y="-10"/>
+        <edges xmi:type="notation:Edge" xmi:id="_YtFeAOr4EeyhBPt9z4CQLw" type="4001" element="_JkOxSgc-Eey-kNQ7esRa_g" source="_IONsYAZtEey-kNQ7esRa_g" target="_pEG-0AaCEey-kNQ7esRa_g">
+          <children xmi:type="notation:Node" xmi:id="_YtGFEOr4EeyhBPt9z4CQLw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YtGFEer4EeyhBPt9z4CQLw" y="-10"/>
           </children>
-          <children xmi:type="notation:Node" xmi:id="_pBWOwBFDEeydeasO1RaQEg" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pBWOwRFDEeydeasO1RaQEg" y="10"/>
+          <children xmi:type="notation:Node" xmi:id="_YtGFEur4EeyhBPt9z4CQLw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YtGFE-r4EeyhBPt9z4CQLw" y="10"/>
           </children>
-          <children xmi:type="notation:Node" xmi:id="_pBbHQBFDEeydeasO1RaQEg" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pBbHQRFDEeydeasO1RaQEg" y="10"/>
+          <children xmi:type="notation:Node" xmi:id="_YtGFFOr4EeyhBPt9z4CQLw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YtGFFer4EeyhBPt9z4CQLw" y="10"/>
           </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_pBGXIRFDEeydeasO1RaQEg" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_pBGXIhFDEeydeasO1RaQEg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pBGXIxFDEeydeasO1RaQEg" points="[0, 0, 738, 235]$[-154, 0, 584, 235]$[-154, -237, 584, -2]$[-734, -237, 4, -2]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pBmGYBFDEeydeasO1RaQEg" id="(0.0,0.1326530612244898)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pBmtcBFDEeydeasO1RaQEg" id="(0.9661016949152542,0.7346938775510204)"/>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_YtFeAer4EeyhBPt9z4CQLw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_YtFeAur4EeyhBPt9z4CQLw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YtFeA-r4EeyhBPt9z4CQLw" points="[74, 0, -182, -59]$[74, 45, -182, -14]$[248, 45, -8, -14]$[248, 52, -8, -7]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YtGFFur4EeyhBPt9z4CQLw" id="(0.4340425531914894,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YtGFF-r4EeyhBPt9z4CQLw" id="(0.4406779661016949,0.07142857142857142)"/>
         </edges>
       </data>
     </ownedAnnotationEntries>
@@ -1541,26 +1513,26 @@
         </computedStyleDescriptions>
       </data>
     </ownedAnnotationEntries>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_OUqdgAQNEey-kNQ7esRa_g" name="Agent" tooltipText="" outgoingEdges="_sk66gAQOEey-kNQ7esRa_g _-DqnUAQkEey-kNQ7esRa_g _JBUntgQlEey-kNQ7esRa_g _Yn8yzAQvEey-kNQ7esRa_g" incomingEdges="_oOv_0AWgEey-kNQ7esRa_g _SeKa9gaEEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_OUqdgAQNEey-kNQ7esRa_g" name="Agent" tooltipText="" outgoingEdges="_sk66gAQOEey-kNQ7esRa_g _-DqnUAQkEey-kNQ7esRa_g" incomingEdges="_SeKa9gaEEey-kNQ7esRa_g _cPgeFhuCEeyPOIo-WqURQQ" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Agent"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Agent"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IZzMIQQOEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_BWDIURuCEeyPOIo-WqURQQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_UecfMAQNEey-kNQ7esRa_g" name="name : EString" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Agent/name"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Agent/name"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_IZzzMQQOEey-kNQ7esRa_g" labelAlignment="LEFT">
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="__pp38BuBEeyPOIo-WqURQQ" name="agentType : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Agent/agentType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Agent/agentType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_BWE9ghuCEeyPOIo-WqURQQ" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hSvboAQOEey-kNQ7esRa_g" name="Entity" tooltipText="" incomingEdges="_sk66gAQOEey-kNQ7esRa_g _s-J3-AQkEey-kNQ7esRa_g _3h3klgWgEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hSvboAQOEey-kNQ7esRa_g" name="Entity" tooltipText="" incomingEdges="_sk66gAQOEey-kNQ7esRa_g _s-J3-AQkEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Entity"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Entity"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1582,16 +1554,16 @@
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_sk66gAQOEey-kNQ7esRa_g" sourceNode="_OUqdgAQNEey-kNQ7esRa_g" targetNode="_hSvboAQOEey-kNQ7esRa_g">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Agent"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Agent"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_sk990AQOEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_BWKdEBuCEeyPOIo-WqURQQ" targetArrow="InputClosedArrow" routingStyle="tree">
         <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_sk-k4AQOEey-kNQ7esRa_g" showIcon="false">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_BWKdERuCEeyPOIo-WqURQQ" showIcon="false">
           <labelFormat>italic</labelFormat>
         </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_sk-k4QQOEey-kNQ7esRa_g" showIcon="false"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_BWKdEhuCEeyPOIo-WqURQQ" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_PgvNEAQjEey-kNQ7esRa_g" name="LocalizableObject" tooltipText="" outgoingEdges="_s-J3-AQkEey-kNQ7esRa_g __99JwAQkEey-kNQ7esRa_g _NJv1oAQlEey-kNQ7esRa_g" incomingEdges="_-DqnUAQkEey-kNQ7esRa_g _p4wqlgWgEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_PgvNEAQjEey-kNQ7esRa_g" name="LocalizableObject" tooltipText="" outgoingEdges="_s-J3-AQkEey-kNQ7esRa_g _cPgeFhuCEeyPOIo-WqURQQ _Q-uURhuHEeyPOIo-WqURQQ" incomingEdges="_-DqnUAQkEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//LocalizableObject"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//LocalizableObject"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1609,35 +1581,16 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Ri6rgAcpEey-kNQ7esRa_g" name="type : EString" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//LocalizableObject/type"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//LocalizableObject/type"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Ri6rgAcpEey-kNQ7esRa_g" name="sensorType : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//LocalizableObject/sensorType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//LocalizableObject/sensorType"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_S14vQQcpEey-kNQ7esRa_g" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ZOg58AQjEey-kNQ7esRa_g" name="PositionSensor" tooltipText="" outgoingEdges="_oOv_0AWgEey-kNQ7esRa_g _p4wqlgWgEey-kNQ7esRa_g _3h3klgWgEey-kNQ7esRa_g" incomingEdges="__99JwAQkEey-kNQ7esRa_g _Yn8yzAQvEey-kNQ7esRa_g" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//PositionSensor"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//PositionSensor"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_8XnV8gcpEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_7XFGAAcpEey-kNQ7esRa_g" name="type : EString" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//PositionSensor/type"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//PositionSensor/type"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_8XokJgcpEey-kNQ7esRa_g" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_beGW8AQjEey-kNQ7esRa_g" name="Placing" tooltipText="" outgoingEdges="_OlBg0AQlEey-kNQ7esRa_g _S3W4sAQlEey-kNQ7esRa_g" incomingEdges="_NJv1oAQlEey-kNQ7esRa_g _t9fiEwQxEey-kNQ7esRa_g _92h2_gccEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_beGW8AQjEey-kNQ7esRa_g" name="Placing" tooltipText="" outgoingEdges="_OlBg0AQlEey-kNQ7esRa_g _S3W4sAQlEey-kNQ7esRa_g" incomingEdges="_t9fiEwQxEey-kNQ7esRa_g _Q-uURhuHEeyPOIo-WqURQQ _G94qwBxXEeyPOIo-WqURQQ _RCvPUgcsEey-kNQ7esRa_g _92h2_gccEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Placing"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Placing"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1648,7 +1601,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_foX_AAQjEey-kNQ7esRa_g" name="Position" tooltipText="" outgoingEdges="_X6rBlgQlEey-kNQ7esRa_g" incomingEdges="_lXawBgQkEey-kNQ7esRa_g _lyTVNgQkEey-kNQ7esRa_g _OlBg0AQlEey-kNQ7esRa_g _RCvPUgcsEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_foX_AAQjEey-kNQ7esRa_g" name="Position" tooltipText="" outgoingEdges="_X6rBlgQlEey-kNQ7esRa_g _r-z1gBrzEeyPOIo-WqURQQ _t3gckhrzEeyPOIo-WqURQQ" incomingEdges="_OlBg0AQlEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Position"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Position"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1659,7 +1612,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hdQdAAQjEey-kNQ7esRa_g" name="Orientation" tooltipText="" incomingEdges="_S3W4sAQlEey-kNQ7esRa_g _eXVOvgcoEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hdQdAAQjEey-kNQ7esRa_g" name="Orientation" tooltipText="" incomingEdges="_rWe5_OMUEeylWPfcS0Eglw _S3W4sAQlEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Orientation"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Orientation"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1670,29 +1623,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_11gvkAQjEey-kNQ7esRa_g" name="AbsolutePosition" tooltipText="" outgoingEdges="_lXawBgQkEey-kNQ7esRa_g _cJaS5gQlEey-kNQ7esRa_g" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AbsolutePosition"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AbsolutePosition"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_11gvkQQjEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_37ZeAAQjEey-kNQ7esRa_g" name="RelativePosition" tooltipText="" outgoingEdges="_lyTVNgQkEey-kNQ7esRa_g _g7KKrAQlEey-kNQ7esRa_g _N_3LvAWNEey-kNQ7esRa_g" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RelativePosition"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RelativePosition"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_37ZeAQQjEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_733TkAQjEey-kNQ7esRa_g" name="WGS84Point" tooltipText="" incomingEdges="_cJaS5gQlEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_733TkAQjEey-kNQ7esRa_g" name="WGS84Point" tooltipText="" outgoingEdges="_ollP6RrzEeyPOIo-WqURQQ" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WGS84Point"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WGS84Point"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1800,7 +1731,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_SIp1EAQkEey-kNQ7esRa_g" name="ReferenceSystem" tooltipText="" outgoingEdges="_t9fiEwQxEey-kNQ7esRa_g" incomingEdges="_idHiEAQkEey-kNQ7esRa_g _g7KKrAQlEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_SIp1EAQkEey-kNQ7esRa_g" name="ReferenceSystem" tooltipText="" outgoingEdges="_t9fiEwQxEey-kNQ7esRa_g" incomingEdges="_t3gckhrzEeyPOIo-WqURQQ _9TmfrBsKEeyPOIo-WqURQQ" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//ReferenceSystem"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//ReferenceSystem"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1827,16 +1758,32 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_UN3OEAQkEey-kNQ7esRa_g" name="Zone" tooltipText="" outgoingEdges="_idHiEAQkEey-kNQ7esRa_g _i5qetgQlEey-kNQ7esRa_g" incomingEdges="_j8d_gAQlEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_UN3OEAQkEey-kNQ7esRa_g" name="Zone" tooltipText="" outgoingEdges="_i5qetgQlEey-kNQ7esRa_g" incomingEdges="_j8d_gAQlEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Zone"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Zone"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_mcZCnQcuEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_9i-28hrzEeyPOIo-WqURQQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_6lo8ABrzEeyPOIo-WqURQQ" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Zone/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Zone/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_7rLAtxrzEeyPOIo-WqURQQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_8ybjsBrzEeyPOIo-WqURQQ" name="id : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Zone/id"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Zone/id"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_9jBTJBrzEeyPOIo-WqURQQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
     </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_VW3dgAQkEey-kNQ7esRa_g" name="ZoneMap" tooltipText="" outgoingEdges="_jdJbsAQkEey-kNQ7esRa_g _j8d_gAQlEey-kNQ7esRa_g" incomingEdges="_fEHOygaEEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//ZoneMap"/>
@@ -1849,7 +1796,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_XZe1gAQkEey-kNQ7esRa_g" name="Space" tooltipText="" incomingEdges="_i5qetgQlEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_XZe1gAQkEey-kNQ7esRa_g" name="Space" tooltipText="" outgoingEdges="_G94qwBxXEeyPOIo-WqURQQ" incomingEdges="_i5qetgQlEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Space"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Space"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1895,18 +1842,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_idHiEAQkEey-kNQ7esRa_g" sourceNode="_UN3OEAQkEey-kNQ7esRa_g" targetNode="_SIp1EAQkEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Zone"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Zone"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_mceiFgcuEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_mceiFwcuEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_mceiGAcuEey-kNQ7esRa_g" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_jdJbsAQkEey-kNQ7esRa_g" sourceNode="_VW3dgAQkEey-kNQ7esRa_g" targetNode="_aKe9gAQkEey-kNQ7esRa_g">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//ZoneMap"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//ZoneMap"/>
@@ -1919,30 +1854,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_lXawBgQkEey-kNQ7esRa_g" sourceNode="_11gvkAQjEey-kNQ7esRa_g" targetNode="_foX_AAQjEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AbsolutePosition"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AbsolutePosition"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_lXbXEAQkEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_lXbXEQQkEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_lXbXEgQkEey-kNQ7esRa_g" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_lyTVNgQkEey-kNQ7esRa_g" sourceNode="_37ZeAAQjEey-kNQ7esRa_g" targetNode="_foX_AAQjEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RelativePosition"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RelativePosition"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_lyT8QAQkEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_lyT8QQQkEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_lyT8QgQkEey-kNQ7esRa_g" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_s-J3-AQkEey-kNQ7esRa_g" sourceNode="_PgvNEAQjEey-kNQ7esRa_g" targetNode="_hSvboAQOEey-kNQ7esRa_g">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//LocalizableObject"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//LocalizableObject"/>
@@ -1969,50 +1880,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="__99JwAQkEey-kNQ7esRa_g" name="[1..1] pSensor" sourceNode="_PgvNEAQjEey-kNQ7esRa_g" targetNode="_ZOg58AQjEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//LocalizableObject/pSensor"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//LocalizableObject/pSensor"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_oD68EwQwEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_oD68FQQwEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>bold</labelFormat>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_oD68FAQwEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_C_GmkAQlEey-kNQ7esRa_g" name="NetworkInterface" tooltipText="" incomingEdges="_JBUntgQlEey-kNQ7esRa_g" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//NetworkInterface"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//NetworkInterface"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_C_GmkQQlEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_JBUntgQlEey-kNQ7esRa_g" name="[1..1] netInt" sourceNode="_OUqdgAQNEey-kNQ7esRa_g" targetNode="_C_GmkAQlEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Agent/netInt"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Agent/netInt"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_xqra9gQwEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_xqra-AQwEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>bold</labelFormat>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_xqra9wQwEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NJv1oAQlEey-kNQ7esRa_g" sourceNode="_PgvNEAQjEey-kNQ7esRa_g" targetNode="_beGW8AQjEey-kNQ7esRa_g" beginLabel="[1..1] lObject" endLabel="[0..1] currentPlacing">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//LocalizableObject/currentPlacing"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//LocalizableObject/currentPlacing"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Placing/lObject"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_NJxq0AQlEey-kNQ7esRa_g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_NJyR4AQlEey-kNQ7esRa_g" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_NJyR4QQlEey-kNQ7esRa_g" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_OlBg0AQlEey-kNQ7esRa_g" name="[1..1] position" sourceNode="_beGW8AQjEey-kNQ7esRa_g" targetNode="_foX_AAQjEey-kNQ7esRa_g">
       <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Placing/position"/>
       <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Placing/position"/>
@@ -2029,9 +1896,12 @@
       <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Placing/orientation"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_1P1jwAQwEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
         <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_1P1jwgQwEey-kNQ7esRa_g" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
           <labelFormat>bold</labelFormat>
         </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_1P1jwQQwEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_1P1jwQQwEey-kNQ7esRa_g" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
@@ -2045,28 +1915,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_cJaS5gQlEey-kNQ7esRa_g" name="[1..1] point" sourceNode="_11gvkAQjEey-kNQ7esRa_g" targetNode="_733TkAQjEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//AbsolutePosition/point"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//AbsolutePosition/point"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_RusxHAQxEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_RusxHgQxEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>bold</labelFormat>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_RusxHQQxEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_g7KKrAQlEey-kNQ7esRa_g" name="[1..1] reference" sourceNode="_37ZeAAQjEey-kNQ7esRa_g" targetNode="_SIp1EAQkEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//RelativePosition/reference"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//RelativePosition/reference"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_en-wrAQxEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_en-wrgQxEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>bold</labelFormat>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_en-wrQQxEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_i5qetgQlEey-kNQ7esRa_g" name="[0..*] space" sourceNode="_UN3OEAQkEey-kNQ7esRa_g" targetNode="_XZe1gAQkEey-kNQ7esRa_g">
       <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Zone/space"/>
       <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Zone/space"/>
@@ -2093,32 +1941,17 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Yn8yzAQvEey-kNQ7esRa_g" name="[0..*] pSensors" sourceNode="_OUqdgAQNEey-kNQ7esRa_g" targetNode="_ZOg58AQjEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Agent/pSensors"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Agent/pSensors"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Yn9Z0AQvEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Yn9Z0gQvEey-kNQ7esRa_g" showIcon="false">
-          <customFeatures>labelSize</customFeatures>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Yn9Z0QQvEey-kNQ7esRa_g" showIcon="false" labelColor="39,76,114">
-          <customFeatures>labelSize</customFeatures>
-        </endLabelStyle>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_t9fiEwQxEey-kNQ7esRa_g" name="[1..1] origin" sourceNode="_SIp1EAQkEey-kNQ7esRa_g" targetNode="_beGW8AQjEey-kNQ7esRa_g">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_t9fiEwQxEey-kNQ7esRa_g" name="[0..1] origin" sourceNode="_SIp1EAQkEey-kNQ7esRa_g" targetNode="_beGW8AQjEey-kNQ7esRa_g">
       <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//ReferenceSystem/origin"/>
       <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//ReferenceSystem/origin"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_v12K4gQxEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_v12K5AQxEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>bold</labelFormat>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_v12K4wQxEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_AiIU-Bt-EeyPOIo-WqURQQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_AiIU-ht-EeyPOIo-WqURQQ" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_AiIU-Rt-EeyPOIo-WqURQQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YBru0ATxEey-kNQ7esRa_g" name="Quaternion" tooltipText="" outgoingEdges="_eXVOvgcoEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YBru0ATxEey-kNQ7esRa_g" name="Quaternion" tooltipText="" outgoingEdges="_rWe5_OMUEeylWPfcS0Eglw" incomingEdges="_cB2dzAWjEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Quaternion"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Quaternion"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2192,7 +2025,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_lkw14AWMEey-kNQ7esRa_g" name="Point" tooltipText="" incomingEdges="_N_3LvAWNEey-kNQ7esRa_g _M1gb_AWOEey-kNQ7esRa_g _NT8rfwWOEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_lkw14AWMEey-kNQ7esRa_g" name="Point" tooltipText="" incomingEdges="_M1gb_AWOEey-kNQ7esRa_g _NT8rfwWOEey-kNQ7esRa_g _ollP6RrzEeyPOIo-WqURQQ _r-z1gBrzEeyPOIo-WqURQQ" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Point"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Point"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2203,20 +2036,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_N_3LvAWNEey-kNQ7esRa_g" name="[1..1] point" sourceNode="_37ZeAAQjEey-kNQ7esRa_g" targetNode="_lkw14AWMEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//RelativePosition/point"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//RelativePosition/point"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_P99QFgWNEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_P99QGAWNEey-kNQ7esRa_g" showIcon="false">
-          <customFeatures>labelSize</customFeatures>
-          <labelFormat>bold</labelFormat>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_P99QFwWNEey-kNQ7esRa_g" showIcon="false" labelColor="39,76,114">
-          <customFeatures>labelSize</customFeatures>
-        </endLabelStyle>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_M1gb_AWOEey-kNQ7esRa_g" sourceNode="_EcfnEAQkEey-kNQ7esRa_g" targetNode="_lkw14AWMEey-kNQ7esRa_g">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Point2D"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Point2D"/>
@@ -2241,66 +2060,25 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="__kvLoAWcEey-kNQ7esRa_g" name="Rawdata" tooltipText="" incomingEdges="_iSeHXgWjEey-kNQ7esRa_g _iy-MfAWjEey-kNQ7esRa_g _T72oPgaBEey-kNQ7esRa_g _WTwDiAcMEey-kNQ7esRa_g" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Rawdata"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Rawdata"/>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="__kvLoAWcEey-kNQ7esRa_g" name="RawdataEvent" tooltipText="" incomingEdges="_iSeHXgWjEey-kNQ7esRa_g _iy-MfAWjEey-kNQ7esRa_g _WTwDiAcMEey-kNQ7esRa_g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RawdataEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RawdataEvent"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__rmE0wWgEey-kNQ7esRa_g" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
-        <labelFormat>italic</labelFormat>
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_6Oi9IyeVEeydzb6PKf1sDQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_9wYVQAWgEey-kNQ7esRa_g" name="sensorId : EString" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Rawdata/sensorId"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Rawdata/sensorId"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="__rnS5wWgEey-kNQ7esRa_g" labelAlignment="LEFT">
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_4ZOaQCeVEeydzb6PKf1sDQ" name="timeStamp : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//RawdataEvent/timeStamp"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//RawdataEvent/timeStamp"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_6OnOkyeVEeydzb6PKf1sDQ" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_oOv_0AWgEey-kNQ7esRa_g" name="[0..1] agent" sourceNode="_ZOg58AQjEey-kNQ7esRa_g" targetNode="_OUqdgAQNEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//PositionSensor/agent"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//PositionSensor/agent"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_oOwm4AWgEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_oOwm4gWgEey-kNQ7esRa_g" showIcon="false">
-          <customFeatures>labelSize</customFeatures>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_oOwm4QWgEey-kNQ7esRa_g" showIcon="false" labelColor="39,76,114">
-          <customFeatures>labelSize</customFeatures>
-        </endLabelStyle>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_p4wqlgWgEey-kNQ7esRa_g" name="[0..1] lObject" sourceNode="_ZOg58AQjEey-kNQ7esRa_g" targetNode="_PgvNEAQjEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//PositionSensor/lObject"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//PositionSensor/lObject"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_p4xRoAWgEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_p4xRogWgEey-kNQ7esRa_g" showIcon="false">
-          <customFeatures>labelSize</customFeatures>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_p4xRoQWgEey-kNQ7esRa_g" showIcon="false" labelColor="39,76,114">
-          <customFeatures>labelSize</customFeatures>
-        </endLabelStyle>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3h3klgWgEey-kNQ7esRa_g" sourceNode="_ZOg58AQjEey-kNQ7esRa_g" targetNode="_hSvboAQOEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//PositionSensor"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//PositionSensor"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_8XuDrAcpEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_8XuDrQcpEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_8XuDrgcpEey-kNQ7esRa_g" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_DsBX0AWiEey-kNQ7esRa_g" name="Proximity" tooltipText="" outgoingEdges="_iy-MfAWjEey-kNQ7esRa_g" incomingEdges="_OeuFcgWiEey-kNQ7esRa_g _PAbrUAWiEey-kNQ7esRa_g _QifPfAcMEey-kNQ7esRa_g _9X2xLAcMEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Proximity"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Proximity"/>
@@ -2404,21 +2182,18 @@
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Nw8j8QWjEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Sn32oAWjEey-kNQ7esRa_g" name="AngularRate" tooltipText="" incomingEdges="_cB2dzAWjEey-kNQ7esRa_g" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AngularRate"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AngularRate"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Sn32oQWjEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_76gZlieeEeydzb6PKf1sDQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_5-c8kCeeEeydzb6PKf1sDQ" name="sensorId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IMU/sensorId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IMU/sensorId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_76kD8ieeEeydzb6PKf1sDQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
     </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YO6XoAWjEey-kNQ7esRa_g" name="Acceleration" tooltipText="" incomingEdges="_cxcusAWjEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Acceleration"/>
@@ -2426,19 +2201,46 @@
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YO6-sAWjEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_hliX-ydREey8t_kDLBrwCg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_ZHyIgCdREey8t_kDLBrwCg" name="x : Float = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/x"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/x"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_adqWUSdREey8t_kDLBrwCg" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_dZJ3ECdREey8t_kDLBrwCg" name="y : Float = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/y"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/y"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_fTxwtydREey8t_kDLBrwCg" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_g0c5QCdREey8t_kDLBrwCg" name="z : Float = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/z"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/z"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_hlk0NSdREey8t_kDLBrwCg" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_cB2dzAWjEey-kNQ7esRa_g" name="[1..1] angularrate" sourceNode="_Nw8j8AWjEey-kNQ7esRa_g" targetNode="_Sn32oAWjEey-kNQ7esRa_g">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_cB2dzAWjEey-kNQ7esRa_g" name="[1..1] angularrate" sourceNode="_Nw8j8AWjEey-kNQ7esRa_g" targetNode="_YBru0ATxEey-kNQ7esRa_g">
       <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IMU/angularrate"/>
       <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IMU/angularrate"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_eks1GwWjEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
         <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_eks1HQWjEey-kNQ7esRa_g" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
           <labelFormat>bold</labelFormat>
         </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_eks1HAWjEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_eks1HAWjEey-kNQ7esRa_g" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
@@ -2456,12 +2258,12 @@
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_iSeHXgWjEey-kNQ7esRa_g" sourceNode="_Nw8j8AWjEey-kNQ7esRa_g" targetNode="__kvLoAWcEey-kNQ7esRa_g">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IMU"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IMU"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_iSeHXwWjEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_76tN7CeeEeydzb6PKf1sDQ" targetArrow="InputClosedArrow" routingStyle="tree">
         <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_iSeHYAWjEey-kNQ7esRa_g" showIcon="false">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_76tN7SeeEeydzb6PKf1sDQ" showIcon="false">
           <labelFormat>italic</labelFormat>
         </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_iSeHYQWjEey-kNQ7esRa_g" showIcon="false"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_76tN7ieeEeydzb6PKf1sDQ" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
@@ -2483,14 +2285,14 @@
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_E4I5hQcSEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_JD5w_j4VEeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
       <ownedElements xmi:type="diagram:DNodeListElement" uid="_mxJQsAcREey-kNQ7esRa_g" name="distances : EMap" tooltipText="">
         <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Beacon/distances"/>
         <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Beacon/distances"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_E4Mj1AcSEey-kNQ7esRa_g" labelAlignment="LEFT">
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_JD-pej4VEeyWNq6fFfWVSw" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
@@ -2503,14 +2305,22 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_9NuU8CeeEeydzb6PKf1sDQ" name="sensorId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Beacon/sensorId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Beacon/sensorId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_-ajUdieeEeydzb6PKf1sDQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_lBuJcAZsEey-kNQ7esRa_g" name="PositionEvent" tooltipText="" outgoingEdges="_92h2_gccEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_lBuJcAZsEey-kNQ7esRa_g" name="PositionEvent" tooltipText="" outgoingEdges="_rz8c8CxEEeyc2bacnWuMrg _92h2_gccEey-kNQ7esRa_g" incomingEdges="_36hE0CxSEeyc2bacnWuMrg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//PositionEvent"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//PositionEvent"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_crga1RFAEeydeasO1RaQEg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ZchbXyBzEeyaJIyxidrtuQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
@@ -2522,61 +2332,14 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ovifAAZsEey-kNQ7esRa_g" name="RawdataEvent" tooltipText="" outgoingEdges="_T72oPgaBEey-kNQ7esRa_g" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RawdataEvent"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RawdataEvent"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ovjGEAZsEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_uNHiAAZsEey-kNQ7esRa_g" name="TrackingRequest" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//TrackingRequest"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//TrackingRequest"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_uNIJEAZsEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vpcWEAZsEey-kNQ7esRa_g" name="MonitoringRequest" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MonitoringRequest"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MonitoringRequest"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_vpcWEQZsEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_yny9kAZsEey-kNQ7esRa_g" name="WorldModelUpdateRequest" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WorldModelUpdateRequest"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WorldModelUpdateRequest"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_yny9kQZsEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_60U6IAZsEey-kNQ7esRa_g" name="DataStorageRequest" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//DataStorageRequest"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//DataStorageRequest"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_60U6IQZsEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_onxBUBvcEeyPOIo-WqURQQ" name="lObjectId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//PositionEvent/lObjectId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//PositionEvent/lObjectId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_qwZhwRvcEeyPOIo-WqURQQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
     </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_IOFwkAZtEey-kNQ7esRa_g" name="EventFilterConfiguration" tooltipText="" outgoingEdges="_JkOxSgc-Eey-kNQ7esRa_g" incomingEdges="_0IAKIgaCEey-kNQ7esRa_g _HI0zogcbEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//EventFilterConfiguration"/>
@@ -2613,50 +2376,6 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_fnEkAAZ_Eey-kNQ7esRa_g" name="WorldModelQueryRequest" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WorldModelQueryRequest"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WorldModelQueryRequest"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_fnEkAQZ_Eey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_jeEDsAZ_Eey-kNQ7esRa_g" name="DataStorageQueryRequest" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//DataStorageQueryRequest"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//DataStorageQueryRequest"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_jeEDsQZ_Eey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Pe6YMAaAEey-kNQ7esRa_g" name="AgentRegistrationRequest" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AgentRegistrationRequest"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AgentRegistrationRequest"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Pe6_QAaAEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_T72oPgaBEey-kNQ7esRa_g" name="[1..*] rawdata" sourceNode="_ovifAAZsEey-kNQ7esRa_g" targetNode="__kvLoAWcEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//RawdataEvent/rawdata"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//RawdataEvent/rawdata"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XIKMRgaBEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_XIKMSAaBEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>bold</labelFormat>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_XIKMRwaBEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_nuR0UAaCEey-kNQ7esRa_g" name="MonitoringTask" tooltipText="" outgoingEdges="_0IAKIgaCEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MonitoringTask"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MonitoringTask"/>
@@ -2668,7 +2387,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_pD8mwAaCEey-kNQ7esRa_g" name="TrackingTask" tooltipText="" outgoingEdges="_HI0zogcbEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_pD8mwAaCEey-kNQ7esRa_g" name="TrackingTask" tooltipText="" outgoingEdges="_HI0zogcbEey-kNQ7esRa_g" incomingEdges="_JkOxSgc-Eey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//TrackingTask"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//TrackingTask"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2690,7 +2409,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NNImAAaEEey-kNQ7esRa_g" name="WorldModel" tooltipText="" outgoingEdges="_SeKa9gaEEey-kNQ7esRa_g _fEHOygaEEey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NNImAAaEEey-kNQ7esRa_g" name="WorldModel" tooltipText="" outgoingEdges="_SeKa9gaEEey-kNQ7esRa_g _fEHOygaEEey-kNQ7esRa_g _ajhzHRsKEeyPOIo-WqURQQ _9TmfrBsKEeyPOIo-WqURQQ" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WorldModel"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WorldModel"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2715,9 +2434,9 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_fEHOygaEEey-kNQ7esRa_g" name="[0..*] zonemap" sourceNode="_NNImAAaEEey-kNQ7esRa_g" targetNode="_VW3dgAQkEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//WorldModel/zonemap"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//WorldModel/zonemap"/>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_fEHOygaEEey-kNQ7esRa_g" name="[0..*] zoneMap" sourceNode="_NNImAAaEEey-kNQ7esRa_g" targetNode="_VW3dgAQkEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//WorldModel/zoneMap"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//WorldModel/zoneMap"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_fEHOywaEEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
         <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
         <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_fEHOzQaEEey-kNQ7esRa_g" showIcon="false">
@@ -2755,12 +2474,12 @@
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_WTwDiAcMEey-kNQ7esRa_g" sourceNode="_s0dfUAWjEey-kNQ7esRa_g" targetNode="__kvLoAWcEey-kNQ7esRa_g">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Beacon"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Beacon"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_E4UfrAcSEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_JEEwND4VEeyWNq6fFfWVSw" targetArrow="InputClosedArrow" routingStyle="tree">
         <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_E4UfrQcSEey-kNQ7esRa_g" showIcon="false">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_JEEwNT4VEeyWNq6fFfWVSw" showIcon="false">
           <labelFormat>italic</labelFormat>
         </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_E4UfrgcSEey-kNQ7esRa_g" showIcon="false"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_JEEwNj4VEeyWNq6fFfWVSw" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
@@ -2801,14 +2520,14 @@
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_I-N60QcOEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_d_Ac5iejEeyTddajI1jY8w" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
       <ownedElements xmi:type="diagram:DNodeListElement" uid="_10SAEAcOEey-kNQ7esRa_g" name="rss : EMap" tooltipText="">
         <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Bluetooth/rss"/>
         <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Bluetooth/rss"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_D-2hAQcSEey-kNQ7esRa_g" labelAlignment="LEFT">
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_d_K08iejEeyTddajI1jY8w" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
@@ -2828,12 +2547,12 @@
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_PraypgcOEey-kNQ7esRa_g" sourceNode="_I-N60AcOEey-kNQ7esRa_g" targetNode="_s0dfUAWjEey-kNQ7esRa_g">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Bluetooth"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Bluetooth"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_PraypwcOEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_d_dI0CejEeyTddajI1jY8w" targetArrow="InputClosedArrow" routingStyle="tree">
         <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_PrayqAcOEey-kNQ7esRa_g" showIcon="false">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_d_dI0SejEeyTddajI1jY8w" showIcon="false">
           <labelFormat>italic</labelFormat>
         </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_PrayqQcOEey-kNQ7esRa_g" showIcon="false"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_d_dI0iejEeyTddajI1jY8w" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
@@ -2849,17 +2568,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_CJeJMAcREey-kNQ7esRa_g" name="SensorConfigurationRequest" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//SensorConfigurationRequest"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//SensorConfigurationRequest"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_CCYZAQctEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_VJ0tUAcUEey-kNQ7esRa_g" name="OtherBeacon" tooltipText="" outgoingEdges="_aEKgcgcUEey-kNQ7esRa_g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OtherBeacon"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OtherBeacon"/>
@@ -2916,55 +2624,62 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_eXVOvgcoEey-kNQ7esRa_g" sourceNode="_YBru0ATxEey-kNQ7esRa_g" targetNode="_hdQdAAQjEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Quaternion"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Quaternion"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_eXV1sAcoEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_eXV1sQcoEey-kNQ7esRa_g" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_eXV1sgcoEey-kNQ7esRa_g" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Mlx7wAcsEey-kNQ7esRa_g" name="ReferencePosition" tooltipText="" outgoingEdges="_RCvPUgcsEey-kNQ7esRa_g" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//ReferencePosition"/>
-      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//ReferencePosition"/>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Mlx7wAcsEey-kNQ7esRa_g" name="POI" tooltipText="" outgoingEdges="_RCvPUgcsEey-kNQ7esRa_g" incomingEdges="_ajhzHRsKEeyPOIo-WqURQQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//POI"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//POI"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_T3ZvTQcsEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_kGqDfiXpEeyb5750APOSQw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_SqUREAcsEey-kNQ7esRa_g" name="id : EString" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//ReferencePosition/id"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//ReferencePosition/id"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_SqUREAcsEey-kNQ7esRa_g" name="description : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//POI/description"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//POI/description"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_T3cLhAcsEey-kNQ7esRa_g" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_91YjkBr1EeyPOIo-WqURQQ" name="data : EMap" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//POI/data"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//POI/data"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_NzXDMBr2EeyPOIo-WqURQQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_iRkKECXpEeyb5750APOSQw" name="id : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//POI/id"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//POI/id"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_kGwKFSXpEeyb5750APOSQw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_RCvPUgcsEey-kNQ7esRa_g" name="[1..1] position" sourceNode="_Mlx7wAcsEey-kNQ7esRa_g" targetNode="_foX_AAQjEey-kNQ7esRa_g">
-      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//ReferencePosition/position"/>
-      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//ReferencePosition/position"/>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_RCvPUgcsEey-kNQ7esRa_g" name="[1..1] placing" sourceNode="_Mlx7wAcsEey-kNQ7esRa_g" targetNode="_beGW8AQjEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//POI/placing"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//POI/placing"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_R838QwcsEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
         <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_R838RQcsEey-kNQ7esRa_g" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
           <labelFormat>bold</labelFormat>
         </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_R838RAcsEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_R838RAcsEey-kNQ7esRa_g" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_D9Ka8Ac-Eey-kNQ7esRa_g" name="EventFilterCondition" tooltipText="" incomingEdges="_JkOxSgc-Eey-kNQ7esRa_g" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_D9Ka8Ac-Eey-kNQ7esRa_g" name="EventFilterCondition" tooltipText="" width="12" height="10">
       <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//EventFilterCondition"/>
       <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//EventFilterCondition"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_7MmbTRFkEeydeasO1RaQEg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_KjE6L4ThEeybc9Dj6t-c7Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
@@ -2976,22 +2691,6 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GJ1sEBE9EeydeasO1RaQEg" name="categoryCondition : StringList" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/categoryCondition"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/categoryCondition"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_LfaCkxE9EeydeasO1RaQEg" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_RSvTIBE9EeydeasO1RaQEg" name="idCondition : StringList" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/idCondition"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/idCondition"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_WX3Z5xE9EeydeasO1RaQEg" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
       <ownedElements xmi:type="diagram:DNodeListElement" uid="_WzdJsBE9EeydeasO1RaQEg" name="accuracyCondition : Float = 0.0" tooltipText="">
         <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/accuracyCondition"/>
         <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/accuracyCondition"/>
@@ -3040,16 +2739,40 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_1GZ5EBFkEeydeasO1RaQEg" name="positionConditionCell : FloatArray3d" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/positionConditionCell"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/positionConditionCell"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_7MoQfhFkEeydeasO1RaQEg" labelAlignment="LEFT">
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_1GZ5EBFkEeydeasO1RaQEg" name="positionConditionCells : EMap" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/positionConditionCells"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/positionConditionCells"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_TI5G5jASEeys5_IXgF_hBA" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_eIgtsB_NEeyaJIyxidrtuQ" name="idCondition : StringList" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/idCondition"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/idCondition"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_hcgOBR_NEeyaJIyxidrtuQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_iWX1QB_NEeyaJIyxidrtuQ" name="categoryCondition : StringList" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/categoryCondition"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/categoryCondition"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_l9EPIx_NEeyaJIyxidrtuQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Fvq1gIThEeybc9Dj6t-c7Q" name="propertyCondition : StringList" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/propertyCondition"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//EventFilterCondition/propertyCondition"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_KjLn1YThEeybc9Dj6t-c7Q" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_JkOxSgc-Eey-kNQ7esRa_g" name="[0..*] eventfiltercondition" sourceNode="_IOFwkAZtEey-kNQ7esRa_g" targetNode="_D9Ka8Ac-Eey-kNQ7esRa_g">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_JkOxSgc-Eey-kNQ7esRa_g" name="[0..*] eventfiltercondition" sourceNode="_IOFwkAZtEey-kNQ7esRa_g" targetNode="_pD8mwAaCEey-kNQ7esRa_g">
       <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//EventFilterConfiguration/eventfiltercondition"/>
       <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//EventFilterConfiguration/eventfiltercondition"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_JkOxSwc-Eey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
@@ -3178,11 +2901,2916 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
-    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_EthkIAQNEey-kNQ7esRa_g"/>
-    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
-    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
-    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
-    <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#/"/>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ollP6RrzEeyPOIo-WqURQQ" sourceNode="_733TkAQjEey-kNQ7esRa_g" targetNode="_lkw14AWMEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WGS84Point"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//WGS84Point"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_oll28BrzEeyPOIo-WqURQQ" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_oll28RrzEeyPOIo-WqURQQ" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_oll28hrzEeyPOIo-WqURQQ" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_r-z1gBrzEeyPOIo-WqURQQ" name="[1..1] point" sourceNode="_foX_AAQjEey-kNQ7esRa_g" targetNode="_lkw14AWMEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Position/point"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Position/point"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_0aTbNRrzEeyPOIo-WqURQQ" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_0aTbNxrzEeyPOIo-WqURQQ" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_0aTbNhrzEeyPOIo-WqURQQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_t3gckhrzEeyPOIo-WqURQQ" name="[1..1] referenceSystem" sourceNode="_foX_AAQjEey-kNQ7esRa_g" targetNode="_SIp1EAQkEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Position/referenceSystem"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Position/referenceSystem"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_1fGgBhrzEeyPOIo-WqURQQ" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_1fGgCBrzEeyPOIo-WqURQQ" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_1fGgBxrzEeyPOIo-WqURQQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ajhzHRsKEeyPOIo-WqURQQ" name="[0..*] pois" sourceNode="_NNImAAaEEey-kNQ7esRa_g" targetNode="_Mlx7wAcsEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//WorldModel/pois"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//WorldModel/pois"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ajiaABsKEeyPOIo-WqURQQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ajiaAhsKEeyPOIo-WqURQQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ajiaARsKEeyPOIo-WqURQQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9TmfrBsKEeyPOIo-WqURQQ" name="[0..*] referenceSystem" sourceNode="_NNImAAaEEey-kNQ7esRa_g" targetNode="_SIp1EAQkEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//WorldModel/referenceSystem"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//WorldModel/referenceSystem"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9TntwBsKEeyPOIo-WqURQQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_9TntwhsKEeyPOIo-WqURQQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9TntwRsKEeyPOIo-WqURQQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_cPgeFhuCEeyPOIo-WqURQQ" name="[0..1] agent" sourceNode="_PgvNEAQjEey-kNQ7esRa_g" targetNode="_OUqdgAQNEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//LocalizableObject/agent"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//LocalizableObject/agent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_cPhsMBuCEeyPOIo-WqURQQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_cPhsMhuCEeyPOIo-WqURQQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_cPhsMRuCEeyPOIo-WqURQQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Q-uURhuHEeyPOIo-WqURQQ" name="[0..1] currentPlacing" sourceNode="_PgvNEAQjEey-kNQ7esRa_g" targetNode="_beGW8AQjEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//LocalizableObject/currentPlacing"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//LocalizableObject/currentPlacing"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Q-u7IBuHEeyPOIo-WqURQQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Q-u7IhuHEeyPOIo-WqURQQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Q-u7IRuHEeyPOIo-WqURQQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_G94qwBxXEeyPOIo-WqURQQ" name="[1..1] centrePoint" sourceNode="_XZe1gAQkEey-kNQ7esRa_g" targetNode="_beGW8AQjEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Space/centrePoint"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//Space/centrePoint"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Kzax9RxXEeyPOIo-WqURQQ" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Kzax9xxXEeyPOIo-WqURQQ" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Kzax9hxXEeyPOIo-WqURQQ" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Q7S_gCxEEeyc2bacnWuMrg" name="ZoneDescriptor" tooltipText="" incomingEdges="_rz8c8CxEEeyc2bacnWuMrg" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//ZoneDescriptor"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//ZoneDescriptor"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_jwC3-ixEEeyc2bacnWuMrg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_dwRt4CxEEeyc2bacnWuMrg" name="zoneId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//ZoneDescriptor/zoneId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//ZoneDescriptor/zoneId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_fSuYESxEEeyc2bacnWuMrg" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_hNSnUCxEEeyc2bacnWuMrg" name="notificationType : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//ZoneDescriptor/notificationType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//ZoneDescriptor/notificationType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_jwHwfixEEeyc2bacnWuMrg" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_rz8c8CxEEeyc2bacnWuMrg" name="[0..*] zonedescriptors" sourceNode="_lBuJcAZsEey-kNQ7esRa_g" targetNode="_Q7S_gCxEEeyc2bacnWuMrg">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//PositionEvent/zonedescriptors"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//PositionEvent/zonedescriptors"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_rz9EACxEEeyc2bacnWuMrg" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_rz9EAixEEeyc2bacnWuMrg" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_rz9EASxEEeyc2bacnWuMrg" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ipG8sCxSEeyc2bacnWuMrg" name="DataStorageQueryResponse" tooltipText="" outgoingEdges="_36hE0CxSEeyc2bacnWuMrg" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//DataStorageQueryResponse"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//DataStorageQueryResponse"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XJ9ZRTC6Eeys5_IXgF_hBA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_WDgukDC6Eeys5_IXgF_hBA" name="trackingTaskId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//DataStorageQueryResponse/trackingTaskId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//DataStorageQueryResponse/trackingTaskId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_XKDf5DC6Eeys5_IXgF_hBA" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_36hE0CxSEeyc2bacnWuMrg" name="[0..*] positionEvents" sourceNode="_ipG8sCxSEeyc2bacnWuMrg" targetNode="_lBuJcAZsEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//DataStorageQueryResponse/positionEvents"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//DataStorageQueryResponse/positionEvents"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_36hr4CxSEeyc2bacnWuMrg" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_36hr4ixSEeyc2bacnWuMrg" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_36hr4SxSEeyc2bacnWuMrg" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_-2weQJSJEeyJ0bON1VCj7g" name="MessageReceivedEvent" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MessageReceivedEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MessageReceivedEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_7_EvF5riEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_E3M9wJSKEeyJ0bON1VCj7g" name="protocolName : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/protocolName"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/protocolName"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_H6qux5SKEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_gVMj8JSKEeyJ0bON1VCj7g" name="serializedMsg : ByteArray" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/serializedMsg"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/serializedMsg"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_6Ez8z5SKEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_R19rgJSQEeyJ0bON1VCj7g" name="agentId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/agentId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/agentId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_U5wMo5SQEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YW1asJSUEeyJ0bON1VCj7g" name="extractedAttributes : ListOfStringMaps" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/extractedAttributes"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/extractedAttributes"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_kF1ERJotEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_5c0NsJriEeybDM53IXNodQ" name="timestamp : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/timestamp"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//MessageReceivedEvent/timestamp"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_7_IZdZriEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_swMsEJSKEeyJ0bON1VCj7g" name="ByteArray" tooltipText="" width="14" height="5">
+      <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ByteArray"/>
+      <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ByteArray"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_swMsEZSKEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="255,250,191">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_swUA0pSKEeyJ0bON1VCj7g" name="java.lang.byte[]" tooltipText="">
+        <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ByteArray"/>
+        <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ByteArray"/>
+        <decorations xmi:type="viewpoint:Decoration" uid="_swUA05SKEeyJ0bON1VCj7g">
+          <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/>
+        </decorations>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_swUA1JSKEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_-GdxEJosEeybDM53IXNodQ" name="ListOfStringMaps" tooltipText="" width="14" height="5">
+      <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ListOfStringMaps"/>
+      <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ListOfStringMaps"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_-GeYIJosEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="255,250,191">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_-G09cJosEeybDM53IXNodQ" name="java.util.LinkedList&lt;java.util.HashMap&lt;java.lang.String, java.lang.String>>" tooltipText="">
+        <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ListOfStringMaps"/>
+        <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//ListOfStringMaps"/>
+        <decorations xmi:type="viewpoint:Decoration" uid="_-G09cZosEeybDM53IXNodQ">
+          <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/>
+        </decorations>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_-G09cposEeybDM53IXNodQ" showIcon="false">
+          <labelFormat>italic</labelFormat>
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_evTGEKEgEeyjYoAVD5IwbQ" name="IntArray" tooltipText="" width="14" height="5">
+      <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//IntArray"/>
+      <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//IntArray"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_evTGEaEgEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="255,250,191">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_evdeJKEgEeyjYoAVD5IwbQ" name="int[]" tooltipText="">
+        <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//IntArray"/>
+        <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//IntArray"/>
+        <decorations xmi:type="viewpoint:Decoration" uid="_evdeJaEgEeyjYoAVD5IwbQ">
+          <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/>
+        </decorations>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_evdeJqEgEeyjYoAVD5IwbQ" showIcon="false">
+          <labelFormat>italic</labelFormat>
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_rWe5_OMUEeylWPfcS0Eglw" sourceNode="_YBru0ATxEey-kNQ7esRa_g" targetNode="_hdQdAAQjEey-kNQ7esRa_g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Quaternion"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Quaternion"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_rWe5_eMUEeylWPfcS0Eglw" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_rWe5_uMUEeylWPfcS0Eglw" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_rWe5_-MUEeylWPfcS0Eglw" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_EthkIAQNEey-kNQ7esRa_g"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+    <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#/"/>
+  </diagram:DSemanticDiagram>
+  <diagram:DSemanticDiagram uid="_vFz5YDx2EeyWNq6fFfWVSw">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_vGCi4Dx2EeyWNq6fFfWVSw" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_vGCi4Tx2EeyWNq6fFfWVSw" type="Sirius" element="_vFz5YDx2EeyWNq6fFfWVSw" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_v39IADx2EeyWNq6fFfWVSw" type="2003" element="_v3xh0Dx2EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_v39vEDx2EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_v3-WIDx2EeyWNq6fFfWVSw" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_VdvoIDx4EeyWNq6fFfWVSw" type="3010" element="_Vbj20jx4EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_VdvoITx4EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_VdvoIjx4EeyWNq6fFfWVSw"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_v3-WITx2EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_v3-WIjx2EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_v39IATx2EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v39IAjx2EeyWNq6fFfWVSw"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_v3-WIzx2EeyWNq6fFfWVSw" type="2003" element="_v3zXADx2EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_v3-9MDx2EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_v3-9MTx2EeyWNq6fFfWVSw" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_VdwPMDx4EeyWNq6fFfWVSw" type="3010" element="_VblsADx4EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_VdwPMTx4EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_VdwPMjx4EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_VdwPMzx4EeyWNq6fFfWVSw" type="3010" element="_VbmTEDx4EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_VdwPNDx4EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_VdwPNTx4EeyWNq6fFfWVSw"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_v3-9Mjx2EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_v3-9Mzx2EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_v3-WJDx2EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v3-WJTx2EeyWNq6fFfWVSw" x="288"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_v3-9NDx2EeyWNq6fFfWVSw" type="2003" element="_v3z-ETx2EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_v3_kQDx2EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_v3_kQTx2EeyWNq6fFfWVSw" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_v3_kQjx2EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_v3_kQzx2EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_v3-9NTx2EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v3-9Njx2EeyWNq6fFfWVSw" x="314" y="168"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_v3_kRDx2EeyWNq6fFfWVSw" type="2003" element="_v31MMDx2EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_v4ALUDx2EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_v4ALUTx2EeyWNq6fFfWVSw" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_zYsY8Dx4EeyWNq6fFfWVSw" type="3010" element="_zWjq8jx4EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_zYsY8Tx4EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_zYsY8jx4EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_zYsY8zx4EeyWNq6fFfWVSw" type="3010" element="_zWkSATx4EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_zYsY9Dx4EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_zYsY9Tx4EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_zYsY9jx4EeyWNq6fFfWVSw" type="3010" element="_zWk5ETx4EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_zYsY9zx4EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_zYsY-Dx4EeyWNq6fFfWVSw"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_v4ALUjx2EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_v4ALUzx2EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_v3_kRTx2EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v3_kRjx2EeyWNq6fFfWVSw" x="294" y="360"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_v4AyYDx2EeyWNq6fFfWVSw" type="2003" element="_v31zQTx2EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_v4AyYzx2EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_v4AyZDx2EeyWNq6fFfWVSw" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_Vdw2QDx4EeyWNq6fFfWVSw" type="3010" element="_VbmTEjx4EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Vdw2QTx4EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Vdw2Qjx4EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_VdxdUDx4EeyWNq6fFfWVSw" type="3010" element="_Vbm6ITx4EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_VdxdUTx4EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_VdxdUjx4EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_VdxdUzx4EeyWNq6fFfWVSw" type="3010" element="_Vbm6Izx4EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_VdxdVDx4EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_VdxdVTx4EeyWNq6fFfWVSw"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_v4AyZTx2EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_v4AyZjx2EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_v4AyYTx2EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v4AyYjx2EeyWNq6fFfWVSw" x="12" y="198"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_vGCi4jx2EeyWNq6fFfWVSw"/>
+        <edges xmi:type="notation:Edge" xmi:id="_zYuOIDx4EeyWNq6fFfWVSw" type="4001" element="_zWmuQDx4EeyWNq6fFfWVSw" source="_v39IADx2EeyWNq6fFfWVSw" target="_v4AyYDx2EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_zYvcQDx4EeyWNq6fFfWVSw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zYvcQTx4EeyWNq6fFfWVSw" x="-8" y="60"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zYvcQjx4EeyWNq6fFfWVSw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zYvcQzx4EeyWNq6fFfWVSw" x="1" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zYwDUDx4EeyWNq6fFfWVSw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zYwDUTx4EeyWNq6fFfWVSw" x="1" y="-10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_zYuOITx4EeyWNq6fFfWVSw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_zYuOIjx4EeyWNq6fFfWVSw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zYuOIzx4EeyWNq6fFfWVSw" points="[62, 198, 45, 0]$[-50, 198, -67, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zY3_IDx4EeyWNq6fFfWVSw" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zY3_ITx4EeyWNq6fFfWVSw" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_zY3_Ijx4EeyWNq6fFfWVSw" type="4001" element="_zWn8YDx4EeyWNq6fFfWVSw" source="_v39IADx2EeyWNq6fFfWVSw" target="_v3-WIzx2EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_zY4mMDx4EeyWNq6fFfWVSw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zY4mMTx4EeyWNq6fFfWVSw" x="-4" y="25"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zY4mMjx4EeyWNq6fFfWVSw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zY4mMzx4EeyWNq6fFfWVSw" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zY4mNDx4EeyWNq6fFfWVSw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zY4mNTx4EeyWNq6fFfWVSw" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_zY3_Izx4EeyWNq6fFfWVSw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_zY3_JDx4EeyWNq6fFfWVSw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zY3_JTx4EeyWNq6fFfWVSw" points="[62, 0, -248, 0]$[226, 0, -84, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zY5NQDx4EeyWNq6fFfWVSw" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zY5NQTx4EeyWNq6fFfWVSw" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_zY5NQjx4EeyWNq6fFfWVSw" type="4001" element="_zWn8Zzx4EeyWNq6fFfWVSw" source="_v3-WIzx2EeyWNq6fFfWVSw" target="_v3-9NDx2EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_zY5NRjx4EeyWNq6fFfWVSw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zY5NRzx4EeyWNq6fFfWVSw" x="-5" y="-61"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zY50UDx4EeyWNq6fFfWVSw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zY50UTx4EeyWNq6fFfWVSw" x="48" y="5"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zY50Ujx4EeyWNq6fFfWVSw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zY50Uzx4EeyWNq6fFfWVSw" x="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_zY5NQzx4EeyWNq6fFfWVSw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_zY5NRDx4EeyWNq6fFfWVSw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zY5NRTx4EeyWNq6fFfWVSw" points="[7, 49, 6, -119]$[7, 119, 6, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zY50VDx4EeyWNq6fFfWVSw" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zY50VTx4EeyWNq6fFfWVSw" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_zY50Vjx4EeyWNq6fFfWVSw" type="4001" element="_zWojdjx4EeyWNq6fFfWVSw" source="_v3-9NDx2EeyWNq6fFfWVSw" target="_v3_kRDx2EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_zY6bYDx4EeyWNq6fFfWVSw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zY6bYTx4EeyWNq6fFfWVSw" x="-10" y="-73"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zY6bYjx4EeyWNq6fFfWVSw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zY6bYzx4EeyWNq6fFfWVSw" x="10" y="5"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zY6bZDx4EeyWNq6fFfWVSw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zY6bZTx4EeyWNq6fFfWVSw" x="8" y="5"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_zY50Vzx4EeyWNq6fFfWVSw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_zY50WDx4EeyWNq6fFfWVSw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zY50WTx4EeyWNq6fFfWVSw" points="[-1, 49, -3, -143]$[-1, 143, -3, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zY7CcDx4EeyWNq6fFfWVSw" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zY7CcTx4EeyWNq6fFfWVSw" id="(0.5,0.5)"/>
+        </edges>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_vGJQkDx2EeyWNq6fFfWVSw" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_vGJQkTx2EeyWNq6fFfWVSw">
+        <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_zWpKgDx4EeyWNq6fFfWVSw" routingStyle="manhattan">
+          <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_zWpKgTx4EeyWNq6fFfWVSw" showIcon="false" labelExpression="service:render">
+            <labelFormat>bold</labelFormat>
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </centerLabelStyleDescription>
+          <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_zWpKgjx4EeyWNq6fFfWVSw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+          </endLabelStyleDescription>
+        </computedStyleDescriptions>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_v3xh0Dx2EeyWNq6fFfWVSw" name="Picklist" tooltipText="" outgoingEdges="_zWmuQDx4EeyWNq6fFfWVSw _zWn8YDx4EeyWNq6fFfWVSw" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/Picklist"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/Picklist"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_v3yI4Dx2EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Vbj20jx4EeyWNq6fFfWVSw" name="picklistId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/Picklist/picklistId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/Picklist/picklistId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_Vbkd4Dx4EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_v3zXADx2EeyWNq6fFfWVSw" name="PicklistBin" tooltipText="" outgoingEdges="_zWn8Zzx4EeyWNq6fFfWVSw" incomingEdges="_zWn8YDx4EeyWNq6fFfWVSw" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/PicklistBin"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/PicklistBin"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_v3zXATx2EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_VblsADx4EeyWNq6fFfWVSw" name="picklistId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistBin/picklistId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistBin/picklistId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_VblsATx4EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_VbmTEDx4EeyWNq6fFfWVSw" name="binLocationNumber : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistBin/binLocationNumber"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistBin/binLocationNumber"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_VbmTETx4EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_v3z-ETx2EeyWNq6fFfWVSw" name="PicklistItem" tooltipText="" outgoingEdges="_zWojdjx4EeyWNq6fFfWVSw" incomingEdges="_zWn8Zzx4EeyWNq6fFfWVSw" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/PicklistItem"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/PicklistItem"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_v30lIDx2EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_v31MMDx2EeyWNq6fFfWVSw" name="InventoryItem" tooltipText="" incomingEdges="_zWojdjx4EeyWNq6fFfWVSw" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/InventoryItem"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/InventoryItem"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_v31MMTx2EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_zWjq8jx4EeyWNq6fFfWVSw" name="inventoryItemId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/InventoryItem/inventoryItemId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/InventoryItem/inventoryItemId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_zWkSADx4EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_zWkSATx4EeyWNq6fFfWVSw" name="containerId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/InventoryItem/containerId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/InventoryItem/containerId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_zWk5EDx4EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_zWk5ETx4EeyWNq6fFfWVSw" name="productId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/InventoryItem/productId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/InventoryItem/productId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_zWk5Ejx4EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_v31zQTx2EeyWNq6fFfWVSw" name="PicklistRole" tooltipText="" incomingEdges="_zWmuQDx4EeyWNq6fFfWVSw" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/PicklistRole"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OFBiz/PicklistRole"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_v32aUDx2EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_VbmTEjx4EeyWNq6fFfWVSw" name="picklistId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistRole/picklistId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistRole/picklistId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_Vbm6IDx4EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Vbm6ITx4EeyWNq6fFfWVSw" name="partyId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistRole/partyId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistRole/partyId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_Vbm6Ijx4EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Vbm6Izx4EeyWNq6fFfWVSw" name="roleTypeId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistRole/roleTypeId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OFBiz/PicklistRole/roleTypeId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_Vbm6JDx4EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_zWmuQDx4EeyWNq6fFfWVSw" name="[0..*] picklistRoles" sourceNode="_v3xh0Dx2EeyWNq6fFfWVSw" targetNode="_v31zQTx2EeyWNq6fFfWVSw">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OFBiz/Picklist/picklistRoles"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OFBiz/Picklist/picklistRoles"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_zWnVUDx4EeyWNq6fFfWVSw" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_zWnVUjx4EeyWNq6fFfWVSw" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_zWnVUTx4EeyWNq6fFfWVSw" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_zWn8YDx4EeyWNq6fFfWVSw" name="[0..*] picklistBins" sourceNode="_v3xh0Dx2EeyWNq6fFfWVSw" targetNode="_v3zXADx2EeyWNq6fFfWVSw">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OFBiz/Picklist/picklistBins"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OFBiz/Picklist/picklistBins"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_zWn8YTx4EeyWNq6fFfWVSw" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_zWn8Yzx4EeyWNq6fFfWVSw" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_zWn8Yjx4EeyWNq6fFfWVSw" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_zWn8Zzx4EeyWNq6fFfWVSw" name="[0..*] picklistItems" sourceNode="_v3zXADx2EeyWNq6fFfWVSw" targetNode="_v3z-ETx2EeyWNq6fFfWVSw">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OFBiz/PicklistBin/picklistItems"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OFBiz/PicklistBin/picklistItems"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_zWojcDx4EeyWNq6fFfWVSw" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_zWojcjx4EeyWNq6fFfWVSw" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_zWojcTx4EeyWNq6fFfWVSw" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_zWojdjx4EeyWNq6fFfWVSw" name="[1..1] inventoryItem" sourceNode="_v3z-ETx2EeyWNq6fFfWVSw" targetNode="_v31MMDx2EeyWNq6fFfWVSw">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OFBiz/PicklistItem/inventoryItem"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OFBiz/PicklistItem/inventoryItem"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_zWpKgzx4EeyWNq6fFfWVSw" description="_zWpKgDx4EeyWNq6fFfWVSw" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_zWpKhTx4EeyWNq6fFfWVSw" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_zWpKhDx4EeyWNq6fFfWVSw" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_vF1ukDx2EeyWNq6fFfWVSw"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+    <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//OFBiz"/>
+  </diagram:DSemanticDiagram>
+  <diagram:DSemanticDiagram uid="_FmLvADx3EeyWNq6fFfWVSw">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_FmNkMDx3EeyWNq6fFfWVSw" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_FmNkMTx3EeyWNq6fFfWVSw" type="Sirius" element="_FmLvADx3EeyWNq6fFfWVSw" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_GFFRgDx3EeyWNq6fFfWVSw" type="2003" element="_GE5EQDx3EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_GFFRgzx3EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_GFF4kDx3EeyWNq6fFfWVSw" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_GFF4kTx3EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_GFF4kjx3EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_GFFRgTx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GFFRgjx3EeyWNq6fFfWVSw"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_GFF4kzx3EeyWNq6fFfWVSw" type="2003" element="_GE5rUjx3EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_GFF4ljx3EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_GFGfoDx3EeyWNq6fFfWVSw" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_GFIU0Dx3EeyWNq6fFfWVSw" type="3010" element="_GFAZAjx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFIU0Tx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFIU0jx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFIU0zx3EeyWNq6fFfWVSw" type="3010" element="_GFBAEDx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFIU1Dx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFIU1Tx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFIU1jx3EeyWNq6fFfWVSw" type="3010" element="_GFBAEjx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFIU1zx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFIU2Dx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFI74Dx3EeyWNq6fFfWVSw" type="3010" element="_GFBnITx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFI74Tx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFI74jx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFI74zx3EeyWNq6fFfWVSw" type="3010" element="_GFBnIzx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFI75Dx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFI75Tx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFI75jx3EeyWNq6fFfWVSw" type="3010" element="_GFCOMTx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFI75zx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFI76Dx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFI76Tx3EeyWNq6fFfWVSw" type="3010" element="_GFCOMzx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFI76jx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFI76zx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFI77Dx3EeyWNq6fFfWVSw" type="3010" element="_GFC1QDx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFI77Tx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFI77jx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFJi8Dx3EeyWNq6fFfWVSw" type="3010" element="_GFC1Qjx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFJi8Tx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFJi8jx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFJi8zx3EeyWNq6fFfWVSw" type="3010" element="_GFC1RDx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFJi9Dx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFJi9Tx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_GFJi9jx3EeyWNq6fFfWVSw" type="3010" element="_GFDcUTx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFJi9zx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFJi-Dx3EeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_uj364FdaEeyyocYQuYPGPQ" type="3010" element="_uiokwFdaEeyyocYQuYPGPQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_uj364VdaEeyyocYQuYPGPQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_uj364ldaEeyyocYQuYPGPQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_GFGfoTx3EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_GFGfojx3EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_GFF4lDx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GFF4lTx3EeyWNq6fFfWVSw" x="162" y="222"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_GFGfozx3EeyWNq6fFfWVSw" type="2003" element="_GE6SYjx3EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_GFGfpjx3EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_GFGfpzx3EeyWNq6fFfWVSw" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_GFGfqDx3EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_GFGfqTx3EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_GFGfpDx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GFGfpTx3EeyWNq6fFfWVSw" x="462"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_GFGfqjx3EeyWNq6fFfWVSw" type="2003" element="_GE65cjx3EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_GFGfrTx3EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_GFGfrjx3EeyWNq6fFfWVSw" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_GFGfrzx3EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_GFGfsDx3EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_GFGfqzx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GFGfrDx3EeyWNq6fFfWVSw" x="708"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_GFHGsDx3EeyWNq6fFfWVSw" type="2003" element="_GE7ggDx3EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_GFHGszx3EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_GFHGtDx3EeyWNq6fFfWVSw" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_GFHGtTx3EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_GFHGtjx3EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_GFHGsTx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GFHGsjx3EeyWNq6fFfWVSw" x="912"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_GFHGtzx3EeyWNq6fFfWVSw" type="2003" element="_GE8HkDx3EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_GFHGujx3EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_GFHGuzx3EeyWNq6fFfWVSw" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_GFJi-Tx3EeyWNq6fFfWVSw" type="3010" element="_GFDcUzx3EeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_GFJi-jx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_GFJi-zx3EeyWNq6fFfWVSw"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_GFHGvDx3EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_GFHGvTx3EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_GFHGuDx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GFHGuTx3EeyWNq6fFfWVSw" x="1146"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_GFHGvjx3EeyWNq6fFfWVSw" type="2003" element="_GE8uoDx3EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_GFHtwDx3EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_GFHtwTx3EeyWNq6fFfWVSw" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_GFHtwjx3EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_GFHtwzx3EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_GFHGvzx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GFHGwDx3EeyWNq6fFfWVSw" x="1386"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_GFHtxDx3EeyWNq6fFfWVSw" type="2003" element="_GE8uozx3EeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_GFHtxzx3EeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_GFHtyDx3EeyWNq6fFfWVSw" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_GFHtyTx3EeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_GFHtyjx3EeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_GFHtxTx3EeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GFHtxjx3EeyWNq6fFfWVSw" x="1620"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_TTtGwD8bEeyWNq6fFfWVSw" type="2003" element="_TTCYYD8bEeyWNq6fFfWVSw">
+          <children xmi:type="notation:Node" xmi:id="_TTtt0D8bEeyWNq6fFfWVSw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_TTtt0T8bEeyWNq6fFfWVSw" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_1Gu8YD8bEeyWNq6fFfWVSw" type="3010" element="_1F_VgD8bEeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_1Gu8YT8bEeyWNq6fFfWVSw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_1Gu8Yj8bEeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="__9PL4D8bEeyWNq6fFfWVSw" type="3010" element="__83_gD8bEeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="__9PL4T8bEeyWNq6fFfWVSw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="__9PL4j8bEeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_BI5GsD8cEeyWNq6fFfWVSw" type="3010" element="_BIooAD8cEeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_BI5GsT8cEeyWNq6fFfWVSw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_BI5Gsj8cEeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_B6FTED8cEeyWNq6fFfWVSw" type="3010" element="_B52CgD8cEeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_B6FTET8cEeyWNq6fFfWVSw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_B6FTEj8cEeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_E86K4D8cEeyWNq6fFfWVSw" type="3010" element="_E8oeED8cEeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_E86K4T8cEeyWNq6fFfWVSw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_E86K4j8cEeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_wTAkIJSNEeyJ0bON1VCj7g" type="3010" element="_wS9g1pSNEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_wTAkIZSNEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8" bold="true"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_wTAkIpSNEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_mTwa0D8cEeyWNq6fFfWVSw" type="3010" element="_mTLzED8cEeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_mTwa0T8cEeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8" bold="true"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_mTwa0j8cEeyWNq6fFfWVSw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_mTwa0z8cEeyWNq6fFfWVSw" type="3010" element="_mTLzEj8cEeyWNq6fFfWVSw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_mTwa1D8cEeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_mTwa1T8cEeyWNq6fFfWVSw"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_TTtt0j8bEeyWNq6fFfWVSw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_TTtt0z8bEeyWNq6fFfWVSw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_TTtGwT8bEeyWNq6fFfWVSw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TTtGwj8bEeyWNq6fFfWVSw" x="2028" y="162" width="153" height="231"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_xTXLgIqVEeyJ0bON1VCj7g" type="2003" element="_xRC3UIqVEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_xUM5AIqVEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_xUNgEIqVEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_41F3kIqVEeyJ0bON1VCj7g" type="3010" element="_40Ys8IqVEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_41F3kYqVEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_41F3koqVEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_6cprQIqVEeyJ0bON1VCj7g" type="3010" element="_6cONcIqVEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_6cprQYqVEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_6cprQoqVEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_8zYSEIqVEeyJ0bON1VCj7g" type="3010" element="_8y-CYIqVEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_8zYSEYqVEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_8zYSEoqVEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-aeywIqVEeyJ0bON1VCj7g" type="3010" element="_-aCt4IqVEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_-aeywYqVEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_-aeywoqVEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Po3KUIqWEeyJ0bON1VCj7g" type="3010" element="_Pok2cIqWEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Po3KUYqWEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Po3KUoqWEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_xUNgEYqVEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_xUNgEoqVEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_xTXLgYqVEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xTXLgoqVEeyJ0bON1VCj7g" x="1224" y="162" width="153" height="117"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_KOCgYIqWEeyJ0bON1VCj7g" type="2003" element="_KNvlcIqWEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_KODHcIqWEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_KODHcYqWEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_YtsA0IqWEeyJ0bON1VCj7g" type="3010" element="_YtZs8IqWEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YtsA0YqWEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YtsA0oqWEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_KODHcoqWEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_KODHc4qWEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_KOCgYYqWEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KOCgYoqWEeyJ0bON1VCj7g" x="941" y="318" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="__LdHQIqWEeyJ0bON1VCj7g" type="2003" element="__LN2sIqWEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="__LduUYqWEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="__LduUoqWEeyJ0bON1VCj7g" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="__LduU4qWEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="__LduVIqWEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="__LdHQYqWEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="__LduUIqWEeyJ0bON1VCj7g" x="785" y="480" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_J70SgIqXEeyJ0bON1VCj7g" type="2003" element="_J7lB8IqXEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_J70Sg4qXEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_J705kIqXEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_XiN2wIqXEeyJ0bON1VCj7g" type="3010" element="_Xh8xAIqXEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_XiN2wYqXEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_XiN2woqXEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_J705kYqXEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_J705koqXEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_J70SgYqXEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J70SgoqXEeyJ0bON1VCj7g" x="941" y="480" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_aiph4IqXEeyJ0bON1VCj7g" type="2003" element="_aibfcIqXEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_aiph44qXEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_aiph5IqXEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_gvb0QIqXEeyJ0bON1VCj7g" type="3010" element="_gvKugIqXEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_gvb0QYqXEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_gvb0QoqXEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_aiph5YqXEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_aiph5oqXEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_aiph4YqXEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aiph4oqXEeyJ0bON1VCj7g" x="1529" y="312" width="144" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="__jFHoIqXEeyJ0bON1VCj7g" type="2003" element="__i1QAIqXEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="__jFHo4qXEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="__jFHpIqXEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_YDYNoIqYEeyJ0bON1VCj7g" type="3010" element="_YDIWAIqYEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YDYNoYqYEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YDYNooqYEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="__jFHpYqXEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="__jFHpoqXEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="__jFHoYqXEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="__jFHooqXEeyJ0bON1VCj7g" x="1463" y="486" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_BT_EkIqYEeyJ0bON1VCj7g" type="2003" element="_BTvM8IqYEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_BT_roIqYEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_BT_roYqYEeyJ0bON1VCj7g" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_BT_rooqYEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_BT_ro4qYEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_BT_EkYqYEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BT_EkoqYEeyJ0bON1VCj7g" x="1607" y="486" width="141" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_5_rUAIqYEeyJ0bON1VCj7g" type="2003" element="_5_cqgIqYEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_5_rUA4qYEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_5_rUBIqYEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_9C2xIIqYEeyJ0bON1VCj7g" type="3010" element="_9Cm5gIqYEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_9C2xIYqYEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_9C2xIoqYEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_5_rUBYqYEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_5_rUBoqYEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_5_rUAYqYEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5_rUAoqYEeyJ0bON1VCj7g" x="1313" y="486" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_F9H9cIqZEeyJ0bON1VCj7g" type="2003" element="_F86iEIqZEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_F9IkgIqZEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_F9IkgYqZEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_LBtRoIqZEeyJ0bON1VCj7g" type="3010" element="_LBdaAIqZEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_LBtRoYqZEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_LBtRooqZEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_F9IkgoqZEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_F9Ikg4qZEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_F9H9cYqZEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F9H9coqZEeyJ0bON1VCj7g" x="1781" y="486" width="138" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_ZNRYcIqZEeyJ0bON1VCj7g" type="2003" element="_ZNDWAIqZEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_ZNRYc4qZEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_ZNR_gIqZEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_b9O-oIqZEeyJ0bON1VCj7g" type="3010" element="_b8_HAIqZEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_b9O-oYqZEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_b9O-ooqZEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_ZNR_gYqZEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_ZNR_goqZEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_ZNRYcYqZEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZNRYcoqZEeyJ0bON1VCj7g" x="1079" y="480" width="174" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_vsQ_J5SLEeyJ0bON1VCj7g" type="2003" element="_vsCVoJSLEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_vsRmMJSLEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_vsRmMZSLEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_1WZQYJSLEeyJ0bON1VCj7g" type="3010" element="_1WHjkJSLEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_1WZQYZSLEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_1WZQYpSLEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_5AFT4pSLEeyJ0bON1VCj7g" type="3010" element="_4_zAAJSLEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_5AFT45SLEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_5AFT5JSLEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_O-8-8JSMEeyJ0bON1VCj7g" type="3010" element="_O-qrEJSMEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_O-8-8ZSMEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_O-8-8pSMEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_ZCaEEJSQEeyJ0bON1VCj7g" type="3010" element="_ZCHwMJSQEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_ZCaEEZSQEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_ZCaEEpSQEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_VDezl5SUEeyJ0bON1VCj7g" type="3010" element="_VDHnMJSUEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_VDezmJSUEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_VDezmZSUEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_2GDGMJriEeybDM53IXNodQ" type="3010" element="_2FmaQJriEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_2GDGMZriEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_2GDGMpriEeybDM53IXNodQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_NWceIJSOEeyJ0bON1VCj7g" type="3010" element="_NVZ8VpSOEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_NWceIZSOEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_NWceIpSOEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rkPScJSOEeyJ0bON1VCj7g" type="3010" element="_rjuVG5SOEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_rkPScZSOEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_rkPScpSOEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_zvcj4JSPEeyJ0bON1VCj7g" type="3010" element="_zu2uA5SPEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_zvcj4ZSPEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_zvcj4pSPEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_vsRmMpSLEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_vsRmM5SLEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_vsQ_KJSLEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vsQ_KZSLEeyJ0bON1VCj7g" x="2208" y="162" width="213" height="243"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_FmNkMjx3EeyWNq6fFfWVSw"/>
+        <edges xmi:type="notation:Edge" xmi:id="_E5KQ8IqXEeyJ0bON1VCj7g" type="4001" element="_E4rIwIqXEeyJ0bON1VCj7g" source="__LdHQIqWEeyJ0bON1VCj7g" target="_KOCgYIqWEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_E5x8AIqXEeyJ0bON1VCj7g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E5x8AYqXEeyJ0bON1VCj7g" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_E5yjEIqXEeyJ0bON1VCj7g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E5yjEYqXEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_E5yjEoqXEeyJ0bON1VCj7g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E5yjE4qXEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_E5K4AIqXEeyJ0bON1VCj7g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_E5K4AYqXEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E5K4AoqXEeyJ0bON1VCj7g" points="[0, 0, 0, 46]$[0, -46, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E50YQIqXEeyJ0bON1VCj7g" id="(0.559322033898305,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E50YQYqXEeyJ0bON1VCj7g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_Fc-vsIqXEeyJ0bON1VCj7g" type="4001" element="_FcdLRoqXEeyJ0bON1VCj7g" source="_KOCgYIqWEeyJ0bON1VCj7g" target="_xTXLgIqVEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_Fc-vtIqXEeyJ0bON1VCj7g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fc-vtYqXEeyJ0bON1VCj7g" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Fc-vtoqXEeyJ0bON1VCj7g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fc-vt4qXEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Fc-vuIqXEeyJ0bON1VCj7g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fc-vuYqXEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Fc-vsYqXEeyJ0bON1VCj7g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_Fc-vsoqXEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fc-vs4qXEeyJ0bON1VCj7g" points="[0, 0, 20, 59]$[-20, -59, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fc_WwIqXEeyJ0bON1VCj7g" id="(0.6101694915254238,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fc_WwYqXEeyJ0bON1VCj7g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_QMIaAIqXEeyJ0bON1VCj7g" type="4001" element="_QLpR1oqXEeyJ0bON1VCj7g" source="_J70SgIqXEeyJ0bON1VCj7g" target="_KOCgYIqWEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_QMIaBIqXEeyJ0bON1VCj7g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMIaBYqXEeyJ0bON1VCj7g" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_QMIaBoqXEeyJ0bON1VCj7g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMIaB4qXEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_QMIaCIqXEeyJ0bON1VCj7g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QMIaCYqXEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_QMIaAYqXEeyJ0bON1VCj7g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_QMIaAoqXEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QMIaA4qXEeyJ0bON1VCj7g" points="[0, 0, 43, 132]$[-43, -132, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QMJBEIqXEeyJ0bON1VCj7g" id="(0.5,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QMJBEYqXEeyJ0bON1VCj7g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9dNAQIqXEeyJ0bON1VCj7g" type="4001" element="_9cvGPIqXEeyJ0bON1VCj7g" source="_aiph4IqXEeyJ0bON1VCj7g" target="_xTXLgIqVEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_9dNnUIqXEeyJ0bON1VCj7g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dNnUYqXEeyJ0bON1VCj7g" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9dNnUoqXEeyJ0bON1VCj7g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dNnU4qXEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9dNnVIqXEeyJ0bON1VCj7g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9dNnVYqXEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9dNAQYqXEeyJ0bON1VCj7g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9dNAQoqXEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9dNAQ4qXEeyJ0bON1VCj7g" points="[0, 0, 173, 168]$[-173, -168, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9dNnVoqXEeyJ0bON1VCj7g" id="(0.5492957746478874,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9dNnV4qXEeyJ0bON1VCj7g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_cZc2AIqYEeyJ0bON1VCj7g" type="4001" element="_cZJ7FoqYEeyJ0bON1VCj7g" source="__jFHoIqXEeyJ0bON1VCj7g" target="_aiph4IqXEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_cZddEIqYEeyJ0bON1VCj7g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cZddEYqYEeyJ0bON1VCj7g" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_cZddEoqYEeyJ0bON1VCj7g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cZddE4qYEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_cZddFIqYEeyJ0bON1VCj7g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cZddFYqYEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_cZc2AYqYEeyJ0bON1VCj7g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_cZc2AoqYEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cZc2A4qYEeyJ0bON1VCj7g" points="[0, 0, -75, 70]$[75, -70, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cZddFoqYEeyJ0bON1VCj7g" id="(0.5,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cZddF4qYEeyJ0bON1VCj7g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_c2QGwIqYEeyJ0bON1VCj7g" type="4001" element="_c1wXgIqYEeyJ0bON1VCj7g" source="_BT_EkIqYEeyJ0bON1VCj7g" target="_aiph4IqXEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_c2QGxIqYEeyJ0bON1VCj7g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2QGxYqYEeyJ0bON1VCj7g" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_c2Qt0IqYEeyJ0bON1VCj7g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2Qt0YqYEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_c2Qt0oqYEeyJ0bON1VCj7g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2Qt04qYEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_c2QGwYqYEeyJ0bON1VCj7g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_c2QGwoqYEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c2QGw4qYEeyJ0bON1VCj7g" points="[0, 0, 97, 76]$[-97, -76, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c2Qt1IqYEeyJ0bON1VCj7g" id="(0.4748201438848921,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c2Qt1YqYEeyJ0bON1VCj7g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_E-UL0IqZEeyJ0bON1VCj7g" type="4001" element="_E9zOfIqZEeyJ0bON1VCj7g" source="_5_rUAIqYEeyJ0bON1VCj7g" target="_aiph4IqXEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_E-UL1IqZEeyJ0bON1VCj7g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E-UL1YqZEeyJ0bON1VCj7g" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_E-UL1oqZEeyJ0bON1VCj7g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E-UL14qZEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_E-UL2IqZEeyJ0bON1VCj7g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E-UL2YqZEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_E-UL0YqZEeyJ0bON1VCj7g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_E-UL0oqZEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E-UL04qZEeyJ0bON1VCj7g" points="[0, 0, -66, 76]$[66, -76, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E-Uy4IqZEeyJ0bON1VCj7g" id="(0.6101694915254238,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E-Uy4YqZEeyJ0bON1VCj7g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_MgQTQIqZEeyJ0bON1VCj7g" type="4001" element="_MfznYoqZEeyJ0bON1VCj7g" source="_F9H9cIqZEeyJ0bON1VCj7g" target="_aiph4IqXEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_MgQTRIqZEeyJ0bON1VCj7g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MgQTRYqZEeyJ0bON1VCj7g" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_MgQTRoqZEeyJ0bON1VCj7g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MgQTR4qZEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_MgQTSIqZEeyJ0bON1VCj7g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MgQTSYqZEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_MgQTQYqZEeyJ0bON1VCj7g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_MgQTQoqZEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MgQTQ4qZEeyJ0bON1VCj7g" points="[0, 0, 332, 132]$[-332, -132, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MgQTSoqZEeyJ0bON1VCj7g" id="(0.35294117647058826,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MgQTS4qZEeyJ0bON1VCj7g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_dozvoIqZEeyJ0bON1VCj7g" type="4001" element="_dodxd4qZEeyJ0bON1VCj7g" source="_ZNRYcIqZEeyJ0bON1VCj7g" target="_KOCgYIqWEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_dozvpIqZEeyJ0bON1VCj7g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dozvpYqZEeyJ0bON1VCj7g" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_dozvpoqZEeyJ0bON1VCj7g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dozvp4qZEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_dozvqIqZEeyJ0bON1VCj7g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dozvqYqZEeyJ0bON1VCj7g" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_dozvoYqZEeyJ0bON1VCj7g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_dozvooqZEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dozvo4qZEeyJ0bON1VCj7g" points="[0, 0, 50, 162]$[-50, -162, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dozvqoqZEeyJ0bON1VCj7g" id="(0.4186046511627907,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dozvq4qZEeyJ0bON1VCj7g" id="(0.5,0.5)"/>
+        </edges>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_FmPZYDx3EeyWNq6fFfWVSw" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_FmPZYTx3EeyWNq6fFfWVSw">
+        <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_mTLMAD8cEeyWNq6fFfWVSw" labelExpression="service:renderAsNode" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+          <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <labelFormat>bold</labelFormat>
+          <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
+        </computedStyleDescriptions>
+        <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_eDHIZJSREeyJ0bON1VCj7g" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+          <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <labelFormat>bold</labelFormat>
+          <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+        </computedStyleDescriptions>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GE5EQDx3EeyWNq6fFfWVSw" name="TrackingRequest" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/TrackingRequest"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/TrackingRequest"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GE5rUDx3EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GE5rUjx3EeyWNq6fFfWVSw" name="MonitoringRequest" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_w4NVA1daEeyyocYQuYPGPQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFAZAjx3EeyWNq6fFfWVSw" name="frameIds : StringList" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/frameIds"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/frameIds"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFAZAzx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFBAEDx3EeyWNq6fFfWVSw" name="delta : Float = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/delta"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/delta"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFBAETx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFBAEjx3EeyWNq6fFfWVSw" name="updateFrequency : Float = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/updateFrequency"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/updateFrequency"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFBnIDx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFBnITx3EeyWNq6fFfWVSw" name="type : StringList" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/type"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/type"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFBnIjx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFBnIzx3EeyWNq6fFfWVSw" name="id : StringList" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/id"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/id"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFCOMDx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFCOMTx3EeyWNq6fFfWVSw" name="fusionStrategy : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/fusionStrategy"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/fusionStrategy"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFCOMjx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFCOMzx3EeyWNq6fFfWVSw" name="exitNotification : Boolean = false" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/exitNotification"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/exitNotification"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFCONDx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFC1QDx3EeyWNq6fFfWVSw" name="properties : StringList" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/properties"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/properties"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFC1QTx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFC1Qjx3EeyWNq6fFfWVSw" name="monitoringTaskId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/monitoringTaskId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/monitoringTaskId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFC1Qzx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFC1RDx3EeyWNq6fFfWVSw" name="requestorProtocol : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/requestorProtocol"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/requestorProtocol"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFDcUDx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFDcUTx3EeyWNq6fFfWVSw" name="serializationType : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/serializationType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/serializationType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFDcUjx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_uiokwFdaEeyyocYQuYPGPQ" name="refSystemId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/refSystemId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/refSystemId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_w4PKN1daEeyyocYQuYPGPQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GE6SYjx3EeyWNq6fFfWVSw" name="WorldModelUpdateRequest" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/WorldModelUpdateRequest"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/WorldModelUpdateRequest"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GE65cDx3EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GE65cjx3EeyWNq6fFfWVSw" name="DataStorageRequest" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/DataStorageRequest"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/DataStorageRequest"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GE65czx3EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GE7ggDx3EeyWNq6fFfWVSw" name="WorldModelQueryRequest" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/WorldModelQueryRequest"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/WorldModelQueryRequest"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GE7ggTx3EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GE8HkDx3EeyWNq6fFfWVSw" name="DataStorageQueryRequest" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/DataStorageQueryRequest"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/DataStorageQueryRequest"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GE8HkTx3EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_GFDcUzx3EeyWNq6fFfWVSw" name="trackingTaskId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/DataStorageQueryRequest/trackingTaskId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/DataStorageQueryRequest/trackingTaskId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFEDYDx3EeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GE8uoDx3EeyWNq6fFfWVSw" name="AgentRegistrationRequest" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/AgentRegistrationRequest"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/AgentRegistrationRequest"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GE8uoTx3EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GE8uozx3EeyWNq6fFfWVSw" name="SensorConfigurationRequest" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/SensorConfigurationRequest"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/SensorConfigurationRequest"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GE8upDx3EeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_TTCYYD8bEeyWNq6fFfWVSw" name="IposPositionEvent" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_KV8sMD8cEeyWNq6fFfWVSw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_1F_VgD8bEeyWNq6fFfWVSw" name="agentId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/agentId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/agentId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_HwByzz8cEeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="__83_gD8bEeyWNq6fFfWVSw" name="sensorId : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/sensorId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/sensorId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_IZCTmz8cEeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_BIooAD8cEeyWNq6fFfWVSw" name="type : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/type"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/type"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_JH5kpT8cEeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_B52CgD8cEeyWNq6fFfWVSw" name="sensorType : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/sensorType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/sensorType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_JsF22T8cEeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_E8oeED8cEeyWNq6fFfWVSw" name="lastPosUpdate : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/lastPosUpdate"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/lastPosUpdate"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_KV9TOj8cEeyWNq6fFfWVSw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_wS9g1pSNEeyJ0bON1VCj7g" name=" position : Position" tooltipText="">
+        <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/position"/>
+        <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/position"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_wS9g15SNEeyJ0bON1VCj7g" labelAlignment="LEFT" description="_mTLMAD8cEeyWNq6fFfWVSw" color="114,159,207">
+          <labelFormat>bold</labelFormat>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_mTLzED8cEeyWNq6fFfWVSw" name=" orientation : Orientation" tooltipText="">
+        <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/orientation"/>
+        <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/orientation"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_mTLzET8cEeyWNq6fFfWVSw" labelAlignment="LEFT" description="_mTLMAD8cEeyWNq6fFfWVSw" color="114,159,207">
+          <labelFormat>bold</labelFormat>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_mTLzEj8cEeyWNq6fFfWVSw" name=" zoneDescriptors : ZoneDescriptor" tooltipText="">
+        <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/zoneDescriptors"/>
+        <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/zoneDescriptors"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_mTMaID8cEeyWNq6fFfWVSw" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_xRC3UIqVEeyJ0bON1VCj7g" name="IPosRawdataEvent" tooltipText="" incomingEdges="_FcdLRoqXEeyJ0bON1VCj7g _9cvGPIqXEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_CsJ79YqZEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_40Ys8IqVEeyJ0bON1VCj7g" name="agentId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/agentId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/agentId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_E-13qYqWEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_6cONcIqVEeyJ0bON1VCj7g" name="sensorId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/sensorId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/sensorId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_FyIVxIqWEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_8y-CYIqVEeyJ0bON1VCj7g" name="agentType : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/agentType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/agentType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GsDnZIqWEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_-aCt4IqVEeyJ0bON1VCj7g" name="sensorType : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/sensorType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/sensorType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_CsLKEYqZEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Pok2cIqWEeyJ0bON1VCj7g" name="timeStamp : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/timeStamp"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/timeStamp"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_SI6FOIqWEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_KNvlcIqWEeyJ0bON1VCj7g" name="IPosBeaconEvent" tooltipText="" outgoingEdges="_FcdLRoqXEeyJ0bON1VCj7g" incomingEdges="_E4rIwIqXEeyJ0bON1VCj7g _QLpR1oqXEeyJ0bON1VCj7g _dodxd4qZEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBeaconEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBeaconEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_9hBlz4qWEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YtZs8IqWEeyJ0bON1VCj7g" name="distances : EMap" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBeaconEvent/distances"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBeaconEvent/distances"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_9hECBIqWEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="__LN2sIqWEeyJ0bON1VCj7g" name="IPosUWBEvent" tooltipText="" outgoingEdges="_E4rIwIqXEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosUWBEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosUWBEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__LOdwIqWEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_E4rIwIqXEeyJ0bON1VCj7g" sourceNode="__LN2sIqWEeyJ0bON1VCj7g" targetNode="_KNvlcIqWEeyJ0bON1VCj7g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosUWBEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosUWBEvent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_E4rv0IqXEeyJ0bON1VCj7g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_E4rv0YqXEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_E4rv0oqXEeyJ0bON1VCj7g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_FcdLRoqXEeyJ0bON1VCj7g" sourceNode="_KNvlcIqWEeyJ0bON1VCj7g" targetNode="_xRC3UIqVEeyJ0bON1VCj7g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBeaconEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBeaconEvent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_FcdyUIqXEeyJ0bON1VCj7g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_FcdyUYqXEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_FcdyUoqXEeyJ0bON1VCj7g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J7lB8IqXEeyJ0bON1VCj7g" name="IPosBTEvent" tooltipText="" outgoingEdges="_QLpR1oqXEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBTEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBTEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_skdFGYqYEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Xh8xAIqXEeyJ0bON1VCj7g" name="rss : EMap" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBTEvent/rss"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBTEvent/rss"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_ske6N4qYEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_QLpR1oqXEeyJ0bON1VCj7g" sourceNode="_J7lB8IqXEeyJ0bON1VCj7g" targetNode="_KNvlcIqWEeyJ0bON1VCj7g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBTEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBTEvent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_skgIU4qYEeyJ0bON1VCj7g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_skgIVIqYEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_skgIVYqYEeyJ0bON1VCj7g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_aibfcIqXEeyJ0bON1VCj7g" name="IPosProximityEvent" tooltipText="" outgoingEdges="_9cvGPIqXEeyJ0bON1VCj7g" incomingEdges="_cZJ7FoqYEeyJ0bON1VCj7g _c1wXgIqYEeyJ0bON1VCj7g _E9zOfIqZEeyJ0bON1VCj7g _MfznYoqZEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosProximityEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosProximityEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_huQNA4qXEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_gvKugIqXEeyJ0bON1VCj7g" name="tagId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosProximityEvent/tagId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosProximityEvent/tagId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_huQ0EYqXEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9cvGPIqXEeyJ0bON1VCj7g" sourceNode="_aibfcIqXEeyJ0bON1VCj7g" targetNode="_xRC3UIqVEeyJ0bON1VCj7g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosProximityEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosProximityEvent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9cvGPYqXEeyJ0bON1VCj7g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9cvGPoqXEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_9cvGP4qXEeyJ0bON1VCj7g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="__i1QAIqXEeyJ0bON1VCj7g" name="IPosNFCEvent" tooltipText="" outgoingEdges="_cZJ7FoqYEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosNFCEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosNFCEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_te4tDYqYEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YDIWAIqYEeyJ0bON1VCj7g" name="tagData : EMap" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosNFCEvent/tagData"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosNFCEvent/tagData"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_te57E4qYEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_BTvM8IqYEeyJ0bON1VCj7g" name="IPosBarcodeEvent" tooltipText="" outgoingEdges="_c1wXgIqYEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBarcodeEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBarcodeEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_BTv0AIqYEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_cZJ7FoqYEeyJ0bON1VCj7g" sourceNode="__i1QAIqXEeyJ0bON1VCj7g" targetNode="_aibfcIqXEeyJ0bON1VCj7g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosNFCEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosNFCEvent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_te6iMoqYEeyJ0bON1VCj7g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_te6iM4qYEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_te6iNIqYEeyJ0bON1VCj7g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_c1wXgIqYEeyJ0bON1VCj7g" sourceNode="_BTvM8IqYEeyJ0bON1VCj7g" targetNode="_aibfcIqXEeyJ0bON1VCj7g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBarcodeEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosBarcodeEvent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_c1wXgYqYEeyJ0bON1VCj7g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_c1wXgoqYEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_c1wXg4qYEeyJ0bON1VCj7g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_5_cqgIqYEeyJ0bON1VCj7g" name="IPosRFIDEvent" tooltipText="" outgoingEdges="_E9zOfIqZEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRFIDEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRFIDEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_-gd-pYqYEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_9Cm5gIqYEeyJ0bON1VCj7g" name="location : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRFIDEvent/location"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRFIDEvent/location"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_-gelvYqYEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_E9zOfIqZEeyJ0bON1VCj7g" sourceNode="_5_cqgIqYEeyJ0bON1VCj7g" targetNode="_aibfcIqXEeyJ0bON1VCj7g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRFIDEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosRFIDEvent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_E9z1gIqZEeyJ0bON1VCj7g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_E9z1gYqZEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_E9z1goqZEeyJ0bON1VCj7g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_F86iEIqZEeyJ0bON1VCj7g" name="IPosOtherProxEvent" tooltipText="" outgoingEdges="_MfznYoqZEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherProxEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherProxEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_N_AJUoqZEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_LBdaAIqZEeyJ0bON1VCj7g" name="data : EMap" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherProxEvent/data"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherProxEvent/data"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_N_B-YoqZEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_MfznYoqZEeyJ0bON1VCj7g" sourceNode="_F86iEIqZEeyJ0bON1VCj7g" targetNode="_aibfcIqXEeyJ0bON1VCj7g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherProxEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherProxEvent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_N_ClmoqZEeyJ0bON1VCj7g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_N_Clm4qZEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_N_ClnIqZEeyJ0bON1VCj7g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ZNDWAIqZEeyJ0bON1VCj7g" name="IPosOtherBeaconEvent" tooltipText="" outgoingEdges="_dodxd4qZEeyJ0bON1VCj7g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_efT564qZEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_b8_HAIqZEeyJ0bON1VCj7g" name="data : EMap" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent/data"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent/data"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_efVvB4qZEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_dodxd4qZEeyJ0bON1VCj7g" sourceNode="_ZNDWAIqZEeyJ0bON1VCj7g" targetNode="_KNvlcIqWEeyJ0bON1VCj7g">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_efW9OIqZEeyJ0bON1VCj7g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_efW9OYqZEeyJ0bON1VCj7g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_efW9OoqZEeyJ0bON1VCj7g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_vsCVoJSLEeyJ0bON1VCj7g" name="IposMsgRcvEvent" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_y4b88p_TEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_1WHjkJSLEeyJ0bON1VCj7g" name="protocolName : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/protocolName"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/protocolName"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_fzbPdZSREeyJ0bON1VCj7g" labelAlignment="LEFT" description="_eDHIZJSREeyJ0bON1VCj7g">
+          <labelFormat>bold</labelFormat>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_4_zAAJSLEeyJ0bON1VCj7g" name="serializedMsg : ByteArray" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/serializedMsg"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/serializedMsg"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_6rcpkZSLEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_O-qrEJSMEeyJ0bON1VCj7g" name="lastPosUpdate : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastPosUpdate"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastPosUpdate"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_SbNDZJSMEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_ZCHwMJSQEeyJ0bON1VCj7g" name="agentId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/agentId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/agentId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_eDHIZpSREeyJ0bON1VCj7g" labelAlignment="LEFT" description="_eDHIZJSREeyJ0bON1VCj7g">
+          <labelFormat>bold</labelFormat>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_VDHnMJSUEeyJ0bON1VCj7g" name="extractedAttributes : ListOfStringMaps" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/extractedAttributes"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/extractedAttributes"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_hgtcJJotEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_2FmaQJriEeybDM53IXNodQ" name="timestamp : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/timestamp"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/timestamp"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_3eQ2WZriEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_NVZ8VpSOEeyJ0bON1VCj7g" name=" lastKnownPosition : Position" tooltipText="">
+        <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownPosition"/>
+        <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownPosition"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_NVZ8V5SOEeyJ0bON1VCj7g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_rjuVG5SOEeyJ0bON1VCj7g" name=" lastKnownOrientation : Orientation" tooltipText="">
+        <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownOrientation"/>
+        <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownOrientation"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_rju8IJSOEeyJ0bON1VCj7g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_zu2uA5SPEeyJ0bON1VCj7g" name=" lastKnownZonedescriptors : ZoneDescriptor" tooltipText="">
+        <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownZonedescriptors"/>
+        <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownZonedescriptors"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_zu2uBJSPEeyJ0bON1VCj7g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_FmMWEDx3EeyWNq6fFfWVSw"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+    <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//IPosDevKit"/>
+  </diagram:DSemanticDiagram>
+  <diagram:DSemanticDiagram uid="_27T88IsNEeyJ0bON1VCj7g">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_28wHYIsNEeyJ0bON1VCj7g" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_28wHYYsNEeyJ0bON1VCj7g" type="Sirius" element="_27T88IsNEeyJ0bON1VCj7g" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_AmeasIsOEeyJ0bON1VCj7g" type="2003" element="_Al-rcIsOEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_Ameas4sOEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_AmeatIsOEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_k5HwkIsSEeyJ0bON1VCj7g" type="3010" element="_k4p2gIsSEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_k5HwkYsSEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_k5HwkosSEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_AmeatYsOEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_AmeatosOEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_AmeasYsOEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AmeasosOEeyJ0bON1VCj7g" x="450" y="186" width="141" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_t1Gv8IsZEeyJ0bON1VCj7g" type="2003" element="_tz4n8IsZEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_t1IlIIsZEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_t1IlIYsZEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_wR3tUIsZEeyJ0bON1VCj7g" type="3010" element="_wRQpUIsZEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_wR3tUYsZEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_wR3tUosZEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_5iGikosZEeyJ0bON1VCj7g" type="3010" element="_5hv9QIsZEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_5iGik4sZEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_5iGilIsZEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_RTYmcIsaEeyJ0bON1VCj7g" type="3010" element="_RS-90IsaEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_RTYmcYsaEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_RTYmcosaEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_UHXJ8IsaEeyJ0bON1VCj7g" type="3010" element="_UHBywIsaEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_UHXJ8YsaEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_UHXJ8osaEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_XItbEYsaEeyJ0bON1VCj7g" type="3010" element="_XIXc0IsaEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_XItbEosaEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_XItbE4saEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_syMsAIsaEeyJ0bON1VCj7g" type="3010" element="_sx3U0IsaEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_syMsAYsaEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_syMsAosaEeyJ0bON1VCj7g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_IBk-4I3CEeyJ0bON1VCj7g" type="3010" element="_IBJhEI3CEeyJ0bON1VCj7g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_IBk-4Y3CEeyJ0bON1VCj7g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_IBk-4o3CEeyJ0bON1VCj7g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_t1IlIosZEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_t1IlI4sZEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_t1HXAIsZEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t1HXAYsZEeyJ0bON1VCj7g" x="738" y="204" width="189" height="159"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_28wHYosNEeyJ0bON1VCj7g"/>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_28xVgIsNEeyJ0bON1VCj7g" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_28xVgYsNEeyJ0bON1VCj7g"/>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Al-rcIsOEeyJ0bON1VCj7g" name="MonitoringTarget" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Tooz/MonitoringTarget"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Tooz/MonitoringTarget"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_pQTMMYsSEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_k4p2gIsSEeyJ0bON1VCj7g" name="targetSensorId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/MonitoringTarget/targetSensorId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/MonitoringTarget/targetSensorId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_pQTMNIsSEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_tz4n8IsZEeyJ0bON1VCj7g" name="DistantEntity" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Tooz/DistantEntity"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Tooz/DistantEntity"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Ix8r443CEeyJ0bON1VCj7g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_wRQpUIsZEeyJ0bON1VCj7g" name="localSensorId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/localSensorId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/localSensorId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_yRHBMYsZEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_5hv9QIsZEeyJ0bON1VCj7g" name="localAgentId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/localAgentId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/localAgentId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_71-CqIsZEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_RS-90IsaEeyJ0bON1VCj7g" name="distantEntityId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/distantEntityId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/distantEntityId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_Tsyt1YsaEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_UHBywIsaEeyJ0bON1VCj7g" name="distance : Double = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/distance"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/distance"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_VuVu2IsaEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_XIXc0IsaEeyJ0bON1VCj7g" name="proximityIndex : Int" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/proximityIndex"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/proximityIndex"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_f6fZyYsaEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_sx3U0IsaEeyJ0bON1VCj7g" name="entityData : EMap" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/entityData"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/entityData"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_vHE4vIsaEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_IBJhEI3CEeyJ0bON1VCj7g" name="timeStamp : String" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/timeStamp"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Tooz/DistantEntity/timeStamp"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_Ix8r7Y3CEeyJ0bON1VCj7g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_27VLEIsNEeyJ0bON1VCj7g"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+    <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//Tooz"/>
+  </diagram:DSemanticDiagram>
+  <diagram:DSemanticDiagram uid="_KUAgsI_UEeyJ0bON1VCj7g">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_KUCV4Y_UEeyJ0bON1VCj7g" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_KUCV4o_UEeyJ0bON1VCj7g" type="Sirius" element="_KUAgsI_UEeyJ0bON1VCj7g" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_L1KxcI_UEeyJ0bON1VCj7g" type="2003" element="_L0y-AI_UEeyJ0bON1VCj7g">
+          <children xmi:type="notation:Node" xmi:id="_L1Kxc4_UEeyJ0bON1VCj7g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_L1KxdI_UEeyJ0bON1VCj7g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_Ob6d0JrjEeybDM53IXNodQ" type="3010" element="_OblGoJrjEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Ob6d0ZrjEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Ob6d0prjEeybDM53IXNodQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_TepX4JrjEeybDM53IXNodQ" type="3010" element="_TeTZoJrjEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_TepX4ZrjEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_TepX4prjEeybDM53IXNodQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_fsVcwJrjEeybDM53IXNodQ" type="3010" element="_fsAsoJrjEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_fsVcwZrjEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_fsVcwprjEeybDM53IXNodQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_OSwHgJrzEeybDM53IXNodQ" type="3010" element="_OSSNcJrzEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_OSwHgZrzEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_OSwHgprzEeybDM53IXNodQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_L1KxdY_UEeyJ0bON1VCj7g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_L1Kxdo_UEeyJ0bON1VCj7g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_L1KxcY_UEeyJ0bON1VCj7g" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L1Kxco_UEeyJ0bON1VCj7g" x="258" y="138" width="171" height="105"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_iwcG8JrjEeybDM53IXNodQ" type="2003" element="_iwGvwJrjEeybDM53IXNodQ">
+          <children xmi:type="notation:Node" xmi:id="_iwcG85rjEeybDM53IXNodQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_iwcuAJrjEeybDM53IXNodQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_pPlUoJrjEeybDM53IXNodQ" type="3010" element="_pPRyoJrjEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_pPl7sJrjEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_pPl7sZrjEeybDM53IXNodQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_iwcuAZrjEeybDM53IXNodQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_iwcuAprjEeybDM53IXNodQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_iwcG8ZrjEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iwcG8prjEeybDM53IXNodQ" x="555" y="135" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_yQrhsJrjEeybDM53IXNodQ" type="2003" element="_yQXYoJrjEeybDM53IXNodQ">
+          <children xmi:type="notation:Node" xmi:id="_yQrhs5rjEeybDM53IXNodQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_yQrhtJrjEeybDM53IXNodQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_wkJ5AJrkEeybDM53IXNodQ" type="3010" element="_wj2-EJrkEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_wkJ5AZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_wkJ5AprkEeybDM53IXNodQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_yQrhtZrjEeybDM53IXNodQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_yQrhtprjEeybDM53IXNodQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_yQrhsZrjEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yQrhsprjEeybDM53IXNodQ" x="570" y="273" width="120" height="75"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_8kO1IJrjEeybDM53IXNodQ" type="2003" element="_8j7TIJrjEeybDM53IXNodQ">
+          <children xmi:type="notation:Node" xmi:id="_8kO1I5rjEeybDM53IXNodQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_8kPcMJrjEeybDM53IXNodQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_FHQmIJrkEeybDM53IXNodQ" type="3010" element="_FG9rMJrkEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_FHQmIZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_FHQmIprkEeybDM53IXNodQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hfu5YJrkEeybDM53IXNodQ" type="3010" element="_HfdzoJrkEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hfu5YZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hfu5YprkEeybDM53IXNodQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_JA5xMJrkEeybDM53IXNodQ" type="3010" element="_JAloIJrkEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_JA5xMZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_JA5xMprkEeybDM53IXNodQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_If9jIJ_NEeyjYoAVD5IwbQ" type="3010" element="_Ic5BAJ_NEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_If9jIZ_NEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_If9jIp_NEeyjYoAVD5IwbQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_8kPcMZrjEeybDM53IXNodQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_8kPcMprjEeybDM53IXNodQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_8kO1IZrjEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8kO1IprjEeybDM53IXNodQ" x="-24" y="150" width="162" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_WP47AJrkEeybDM53IXNodQ" type="2003" element="_WPmnIJrkEeybDM53IXNodQ">
+          <children xmi:type="notation:Node" xmi:id="_WP47A5rkEeybDM53IXNodQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_WP5iEJrkEeybDM53IXNodQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_o6EiMJrkEeybDM53IXNodQ" type="3010" element="_o50qkJrkEeybDM53IXNodQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_o6EiMZrkEeybDM53IXNodQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_o6EiMprkEeybDM53IXNodQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_WP5iEZrkEeybDM53IXNodQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_WP5iEprkEeybDM53IXNodQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_WP47AZrkEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WP47AprkEeybDM53IXNodQ" x="-24" y="276" width="159" height="69"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_KUCV44_UEeyJ0bON1VCj7g"/>
+        <edges xmi:type="notation:Edge" xmi:id="_k8XzAJrjEeybDM53IXNodQ" type="4001" element="_k7x9IJrjEeybDM53IXNodQ" source="_L1KxcI_UEeyJ0bON1VCj7g" target="_iwcG8JrjEeybDM53IXNodQ">
+          <children xmi:type="notation:Node" xmi:id="_k9HZ4JrjEeybDM53IXNodQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k9HZ4ZrjEeybDM53IXNodQ" x="14" y="-14"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_k9IA8JrjEeybDM53IXNodQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k9IA8ZrjEeybDM53IXNodQ" x="-6" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_k9IoAJrjEeybDM53IXNodQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k9IoAZrjEeybDM53IXNodQ" x="-83" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_k8XzAZrjEeybDM53IXNodQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_k8XzAprjEeybDM53IXNodQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k8XzA5rjEeybDM53IXNodQ" points="[0, -3, -187, 6]$[128, -3, -59, 6]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k9MSYJrjEeybDM53IXNodQ" id="(1.0,0.05825242718446602)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k9MSYZrjEeybDM53IXNodQ" id="(0.5,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_zdy1EJrjEeybDM53IXNodQ" type="4001" element="_zdX-VprjEeybDM53IXNodQ" source="_L1KxcI_UEeyJ0bON1VCj7g" target="_yQrhsJrjEeybDM53IXNodQ">
+          <children xmi:type="notation:Node" xmi:id="_zdy1FJrjEeybDM53IXNodQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zdy1FZrjEeybDM53IXNodQ" x="121" y="-16"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zdy1FprjEeybDM53IXNodQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zdy1F5rjEeybDM53IXNodQ" x="68" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zdy1GJrjEeybDM53IXNodQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zdy1GZrjEeybDM53IXNodQ" x="16" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_zdy1EZrjEeybDM53IXNodQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_zdy1EprjEeybDM53IXNodQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zdy1E5rjEeybDM53IXNodQ" points="[-84, -53, -286, -44]$[-84, 39, -286, 48]$[143, 39, -59, 48]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zdzcIJrjEeybDM53IXNodQ" id="(1.0,1.3980582524271845)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zdzcIZrjEeybDM53IXNodQ" id="(0.5,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_-xQGUJrjEeybDM53IXNodQ" type="4001" element="_-wqQdprjEeybDM53IXNodQ" source="_L1KxcI_UEeyJ0bON1VCj7g" target="_8kO1IJrjEeybDM53IXNodQ">
+          <children xmi:type="notation:Node" xmi:id="_-xQGVJrjEeybDM53IXNodQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-xQGVZrjEeybDM53IXNodQ" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_-xQGVprjEeybDM53IXNodQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-xQGV5rjEeybDM53IXNodQ" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_-xQGWJrjEeybDM53IXNodQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-xQGWZrjEeybDM53IXNodQ" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_-xQGUZrjEeybDM53IXNodQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_-xQGUprjEeybDM53IXNodQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-xQGU5rjEeybDM53IXNodQ" points="[0, 0, 122, 0]$[-122, 0, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-xQGWprjEeybDM53IXNodQ" id="(0.0,0.17475728155339806)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-xQGW5rjEeybDM53IXNodQ" id="(1.0,0.061224489795918366)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_XRb3kJrkEeybDM53IXNodQ" type="4001" element="_XQ9WdprkEeybDM53IXNodQ" source="_L1KxcI_UEeyJ0bON1VCj7g" target="_WP47AJrkEeybDM53IXNodQ">
+          <children xmi:type="notation:Node" xmi:id="_XRb3lJrkEeybDM53IXNodQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XRb3lZrkEeybDM53IXNodQ" x="90" y="12"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_XRb3lprkEeybDM53IXNodQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XRb3l5rkEeybDM53IXNodQ" x="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_XRb3mJrkEeybDM53IXNodQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XRb3mZrkEeybDM53IXNodQ" x="-80" y="-10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_XRb3kZrkEeybDM53IXNodQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_XRb3kprkEeybDM53IXNodQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XRb3k5rkEeybDM53IXNodQ" points="[30, 79, 242, -47]$[30, 176, 242, 50]$[-164, 176, 48, 50]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XRceoJrkEeybDM53IXNodQ" id="(0.0,0.11650485436893204)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XRceoZrkEeybDM53IXNodQ" id="(0.445859872611465,0.0)"/>
+        </edges>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_KUDkAI_UEeyJ0bON1VCj7g" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_KUDkAY_UEeyJ0bON1VCj7g"/>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_L0y-AI_UEeyJ0bON1VCj7g" name="AgvState" tooltipText="" outgoingEdges="_k7x9IJrjEeybDM53IXNodQ _zdX-VprjEeybDM53IXNodQ _-wqQdprjEeybDM53IXNodQ _XQ9WdprkEeybDM53IXNodQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/AgvState"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/AgvState"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_PlHuUZrzEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_OblGoJrjEeybDM53IXNodQ" name="timeStamp : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/timeStamp"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/timeStamp"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_PfGZJZrjEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_TeTZoJrjEeybDM53IXNodQ" name="serialNumber : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/serialNumber"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/serialNumber"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_U_ZY9ZrjEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_fsAsoJrjEeybDM53IXNodQ" name="lastNodeId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/lastNodeId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/lastNodeId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_gyJORprjEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_OSSNcJrzEeybDM53IXNodQ" name="manufacturer : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/manufacturer"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvState/manufacturer"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_PlHuX5rzEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_iwGvwJrjEeybDM53IXNodQ" name="BatteryState" tooltipText="" incomingEdges="_k7x9IJrjEeybDM53IXNodQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/BatteryState"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/BatteryState"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_qY4fA5rjEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_pPRyoJrjEeybDM53IXNodQ" name="batteryCharge : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/BatteryState/batteryCharge"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/BatteryState/batteryCharge"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_qY5GFJrjEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_k7x9IJrjEeybDM53IXNodQ" name="[0..1] batteryState" sourceNode="_L0y-AI_UEeyJ0bON1VCj7g" targetNode="_iwGvwJrjEeybDM53IXNodQ">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/batteryState"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/batteryState"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_k7zyUJrjEeybDM53IXNodQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_k7zyUprjEeybDM53IXNodQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_k7zyUZrjEeybDM53IXNodQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_yQXYoJrjEeybDM53IXNodQ" name="Error" tooltipText="" incomingEdges="_zdX-VprjEeybDM53IXNodQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/Error"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/Error"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_xdtXNZrkEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_wj2-EJrkEeybDM53IXNodQ" name="errorType : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/Error/errorType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/Error/errorType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_xdt-QprkEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_zdX-VprjEeybDM53IXNodQ" name="[0..*] errors" sourceNode="_L0y-AI_UEeyJ0bON1VCj7g" targetNode="_yQXYoJrjEeybDM53IXNodQ">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/errors"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/errors"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_zdYlYJrjEeybDM53IXNodQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_zdYlYprjEeybDM53IXNodQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_zdYlYZrjEeybDM53IXNodQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_8j7TIJrjEeybDM53IXNodQ" name="AgvPosition" tooltipText="" incomingEdges="_-wqQdprjEeybDM53IXNodQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_KdC655_NEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_FG9rMJrkEeybDM53IXNodQ" name="x : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/x"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/x"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GNywYprkEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_HfdzoJrkEeybDM53IXNodQ" name="y : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/y"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/y"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_IgADk5rkEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_JAloIJrkEeybDM53IXNodQ" name="theta : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/theta"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/theta"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_KO84wJrkEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Ic5BAJ_NEeyjYoAVD5IwbQ" name="mapId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/mapId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/AgvPosition/mapId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_KdEwFJ_NEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_-wqQdprjEeybDM53IXNodQ" name="[0..1] agvposition" sourceNode="_L0y-AI_UEeyJ0bON1VCj7g" targetNode="_8j7TIJrjEeybDM53IXNodQ">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/agvposition"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/agvposition"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_-wrekJrjEeybDM53IXNodQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_-wrekprjEeybDM53IXNodQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_-wrekZrjEeybDM53IXNodQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_WPmnIJrkEeybDM53IXNodQ" name="Load" tooltipText="" incomingEdges="_XQ9WdprkEeybDM53IXNodQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/Load"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//VDA5050/Load"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_rmMKOZrkEeybDM53IXNodQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_o50qkJrkEeybDM53IXNodQ" name="loadId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/Load/loadId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//VDA5050/Load/loadId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_rmMxSZrkEeybDM53IXNodQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_XQ9WdprkEeybDM53IXNodQ" name="[0..*] loads" sourceNode="_L0y-AI_UEeyJ0bON1VCj7g" targetNode="_WPmnIJrkEeybDM53IXNodQ">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/loads"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//VDA5050/AgvState/loads"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XQ99gJrkEeybDM53IXNodQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_XQ99gprkEeybDM53IXNodQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_XQ99gZrkEeybDM53IXNodQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_KUAgsY_UEeyJ0bON1VCj7g"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+    <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//VDA5050"/>
+  </diagram:DSemanticDiagram>
+  <diagram:DSemanticDiagram uid="_q60SoKEeEeyjYoAVD5IwbQ">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_q9SX0KEeEeyjYoAVD5IwbQ" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_q9SX0aEeEeyjYoAVD5IwbQ" type="Sirius" element="_q60SoKEeEeyjYoAVD5IwbQ" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_s0i0YKEeEeyjYoAVD5IwbQ" type="2003" element="_sz0boKEeEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_s0kpkKEeEeyjYoAVD5IwbQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_s0lQoKEeEeyjYoAVD5IwbQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_-dKQ4KEeEeyjYoAVD5IwbQ" type="3010" element="_-cfigKEeEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_-dKQ4aEeEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_-dKQ4qEeEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_AhMlMKEfEeyjYoAVD5IwbQ" type="3010" element="_AgyVgKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_AhMlMaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_AhMlMqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_DnwtgKEfEeyjYoAVD5IwbQ" type="3010" element="_DnXr8KEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_DnwtgaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_DnwtgqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_FEr-gKEfEeyjYoAVD5IwbQ" type="3010" element="_FEX1cKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_FEr-gaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_FEr-gqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G-Als6EhEeyjYoAVD5IwbQ" type="3010" element="_G9wHAKEhEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G-AltKEhEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G-AltaEhEeyjYoAVD5IwbQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_s0lQoaEeEeyjYoAVD5IwbQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_s0lQoqEeEeyjYoAVD5IwbQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_s0i0YaEeEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s0i0YqEeEeyjYoAVD5IwbQ" x="516" y="156" width="207" height="279"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_JRsKcKEfEeyjYoAVD5IwbQ" type="2003" element="_JRUXAKEfEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_JRsxgKEfEeyjYoAVD5IwbQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_JRsxgaEfEeyjYoAVD5IwbQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_L9H186EfEeyjYoAVD5IwbQ" type="3010" element="_L80T8KEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_L9H19KEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_L9H19aEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_YN65MKEfEeyjYoAVD5IwbQ" type="3010" element="_YNpzcKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YN65MaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YN65MqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_JRsxgqEfEeyjYoAVD5IwbQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_JRsxg6EfEeyjYoAVD5IwbQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_JRsKcaEfEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JRsKcqEfEeyjYoAVD5IwbQ" x="912" y="204" width="177" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_O8tMgKEfEeyjYoAVD5IwbQ" type="2003" element="_O8ZqgKEfEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_O8tMg6EfEeyjYoAVD5IwbQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_O8tMhKEfEeyjYoAVD5IwbQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_TKxvcKEfEeyjYoAVD5IwbQ" type="3010" element="_TKeNcKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_TKxvcaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_TKxvcqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_UqkuQKEfEeyjYoAVD5IwbQ" type="3010" element="_UqTBcKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_UqkuQaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_UqkuQqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Vv7MwKEfEeyjYoAVD5IwbQ" type="3010" element="_VvgWAKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Vv7MwaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Vv7MwqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_O8tMhaEfEeyjYoAVD5IwbQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_O8tMhqEfEeyjYoAVD5IwbQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_O8tMgaEfEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O8tMgqEfEeyjYoAVD5IwbQ" x="924" y="354" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_hzyAPKEfEeyjYoAVD5IwbQ" type="2003" element="_hzcpAKEfEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_hzynQKEfEeyjYoAVD5IwbQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_hzynQaEfEeyjYoAVD5IwbQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_jX43QKEfEeyjYoAVD5IwbQ" type="3010" element="_jXeAgKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_jX43QaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_jX43QqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_k1y_sKEfEeyjYoAVD5IwbQ" type="3010" element="_k1ihAKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_k1y_saEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_k1y_sqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_l4qK4KEfEeyjYoAVD5IwbQ" type="3010" element="_l4S-gKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_l4qK4aEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_l4qK4qEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_n6h8AKEfEeyjYoAVD5IwbQ" type="3010" element="_n6OaAKEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_n6h8AaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_n6h8AqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_hzynQqEfEeyjYoAVD5IwbQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_hzynQ6EfEeyjYoAVD5IwbQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_hzyAPaEfEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hzyAPqEfEeyjYoAVD5IwbQ" x="252" y="156" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_xIh8rKEfEeyjYoAVD5IwbQ" type="2003" element="_xISFAKEfEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_xIijsKEfEeyjYoAVD5IwbQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_xIijsaEfEeyjYoAVD5IwbQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_2FnhsKEfEeyjYoAVD5IwbQ" type="3010" element="_2FWb8KEfEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_2FnhsaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_2FnhsqEfEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Rkt7IKEgEeyjYoAVD5IwbQ" type="3010" element="_RkZLAKEgEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Rkt7IaEgEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Rkt7IqEgEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="__rZ6wKEgEeyjYoAVD5IwbQ" type="3010" element="__rJcEKEgEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="__rZ6waEgEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="__rZ6wqEgEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_VTZsMKO5EeydOu36HZmRaA" type="3010" element="_VSyoMKO5EeydOu36HZmRaA">
+              <styles xmi:type="notation:FontStyle" xmi:id="_VTZsMaO5EeydOu36HZmRaA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_VTZsMqO5EeydOu36HZmRaA"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_xIijsqEfEeyjYoAVD5IwbQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_xIijs6EfEeyjYoAVD5IwbQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_xIh8raEfEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xIh8rqEfEeyjYoAVD5IwbQ" x="240" y="330" width="165" height="117"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_XYLSEKEhEeyjYoAVD5IwbQ" type="2003" element="_XX3wEKEhEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_XYLSE6EhEeyjYoAVD5IwbQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_XYLSFKEhEeyjYoAVD5IwbQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_cGn-MKEhEeyjYoAVD5IwbQ" type="3010" element="_cGXfgKEhEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_cGn-MaEhEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_cGn-MqEhEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_e0n1gKEhEeyjYoAVD5IwbQ" type="3010" element="_e0QCEKEhEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_e0n1gaEhEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_e0n1gqEhEeyjYoAVD5IwbQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_XYLSFaEhEeyjYoAVD5IwbQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_XYLSFqEhEeyjYoAVD5IwbQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_XYLSEaEhEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XYLSEqEhEeyjYoAVD5IwbQ" x="762" y="516" width="195" height="75"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_imKT0KEpEeyjYoAVD5IwbQ" type="2003" element="_il2x0KEpEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_imK64KEpEeyjYoAVD5IwbQ" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_imK64aEpEeyjYoAVD5IwbQ" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_ohUDoKEpEeyjYoAVD5IwbQ" type="3010" element="_ohCW0KEpEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_ohUDoaEpEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_ohUDoqEpEeyjYoAVD5IwbQ"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_qKBG1qEpEeyjYoAVD5IwbQ" type="3010" element="_qJoFQKEpEeyjYoAVD5IwbQ">
+              <styles xmi:type="notation:FontStyle" xmi:id="_qKBG16EpEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_qKBG2KEpEeyjYoAVD5IwbQ"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_imK64qEpEeyjYoAVD5IwbQ"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_imK646EpEeyjYoAVD5IwbQ"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_imKT0aEpEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_imKT0qEpEeyjYoAVD5IwbQ" x="1098" y="444" width="204" height="100"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_q9SX0qEeEeyjYoAVD5IwbQ"/>
+        <edges xmi:type="notation:Edge" xmi:id="_bNm9cKEfEeyjYoAVD5IwbQ" type="4001" element="_bNQ_MKEfEeyjYoAVD5IwbQ" source="_JRsKcKEfEeyjYoAVD5IwbQ" target="_O8tMgKEfEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_bNnkgKEfEeyjYoAVD5IwbQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bNnkgaEfEeyjYoAVD5IwbQ" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_bNoLkKEfEeyjYoAVD5IwbQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bNoLkaEfEeyjYoAVD5IwbQ" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_bNoLkqEfEeyjYoAVD5IwbQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bNoLk6EfEeyjYoAVD5IwbQ" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_bNm9caEfEeyjYoAVD5IwbQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_bNm9cqEfEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bNm9c6EfEeyjYoAVD5IwbQ" points="[0, 0, 0, -52]$[0, 52, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bNrO4KEfEeyjYoAVD5IwbQ" id="(0.4057142857142857,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bNrO4aEfEeyjYoAVD5IwbQ" id="(0.5,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_dTwKkKEfEeyjYoAVD5IwbQ" type="4001" element="_dTY-NqEfEeyjYoAVD5IwbQ" source="_s0i0YKEeEeyjYoAVD5IwbQ" target="_JRsKcKEfEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_dTwKlKEfEeyjYoAVD5IwbQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dTwKlaEfEeyjYoAVD5IwbQ" x="196" y="8"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_dTwKlqEfEeyjYoAVD5IwbQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dTwKl6EfEeyjYoAVD5IwbQ" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_dTwKmKEfEeyjYoAVD5IwbQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dTwKmaEfEeyjYoAVD5IwbQ" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_dTwKkaEfEeyjYoAVD5IwbQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_dTwKkqEfEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dTwKk6EfEeyjYoAVD5IwbQ" points="[0, 0, -287, -36]$[287, 0, 0, -36]$[287, 36, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dTwKmqEfEeyjYoAVD5IwbQ" id="(1.0,0.04332129963898917)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dTwKm6EfEeyjYoAVD5IwbQ" id="(0.5485714285714286,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_pkY1wKEfEeyjYoAVD5IwbQ" type="4001" element="_pkI-LKEfEeyjYoAVD5IwbQ" source="_s0i0YKEeEeyjYoAVD5IwbQ" target="_hzyAPKEfEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_pkY1xKEfEeyjYoAVD5IwbQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pkY1xaEfEeyjYoAVD5IwbQ" x="11" y="20"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_pkY1xqEfEeyjYoAVD5IwbQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pkY1x6EfEeyjYoAVD5IwbQ" x="-2" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_pkY1yKEfEeyjYoAVD5IwbQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pkY1yaEfEeyjYoAVD5IwbQ" x="-40" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_pkY1waEfEeyjYoAVD5IwbQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_pkY1wqEfEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pkY1w6EfEeyjYoAVD5IwbQ" points="[0, 0, 146, 0]$[-146, 0, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pkY1yqEfEeyjYoAVD5IwbQ" id="(0.0,0.04332129963898917)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pkY1y6EfEeyjYoAVD5IwbQ" id="(1.0,0.12244897959183673)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_CxgJAKEhEeyjYoAVD5IwbQ" type="4001" element="_CxOcQqEhEeyjYoAVD5IwbQ" source="_s0i0YKEeEeyjYoAVD5IwbQ" target="_xIh8rKEfEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_CxgwEKEhEeyjYoAVD5IwbQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CxgwEaEhEeyjYoAVD5IwbQ" x="57" y="21"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_CxgwEqEhEeyjYoAVD5IwbQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CxgwE6EhEeyjYoAVD5IwbQ" x="148" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_CxgwFKEhEeyjYoAVD5IwbQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CxgwFaEhEeyjYoAVD5IwbQ" y="-10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_CxgJAaEhEeyjYoAVD5IwbQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_CxgJAqEhEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CxgJA6EhEeyjYoAVD5IwbQ" points="[103, 265, 283, 103]$[103, 317, 283, 155]$[-195, 317, -15, 155]$[-195, 277, -15, 115]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CxgwFqEhEeyjYoAVD5IwbQ" id="(0.0,0.04332129963898917)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CxgwF6EhEeyjYoAVD5IwbQ" id="(0.588957055214724,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_ibnxYKEhEeyjYoAVD5IwbQ" type="4001" element="_ibXSyKEhEeyjYoAVD5IwbQ" source="_s0i0YKEeEeyjYoAVD5IwbQ" target="_XYLSEKEhEeyjYoAVD5IwbQ">
+          <children xmi:type="notation:Node" xmi:id="_ibnxZKEhEeyjYoAVD5IwbQ" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ibnxZaEhEeyjYoAVD5IwbQ" x="7"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_ibnxZqEhEeyjYoAVD5IwbQ" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ibnxZ6EhEeyjYoAVD5IwbQ" x="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_ibnxaKEhEeyjYoAVD5IwbQ" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ibnxaaEhEeyjYoAVD5IwbQ" x="-61" y="-121"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_ibnxYaEhEeyjYoAVD5IwbQ" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_ibnxYqEhEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ibnxY6EhEeyjYoAVD5IwbQ" points="[-43, 277, -156, -83]$[-43, 410, -156, 50]$[41, 410, -72, 50]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ibnxaqEhEeyjYoAVD5IwbQ" id="(1.0,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ibnxa6EhEeyjYoAVD5IwbQ" id="(0.37305699481865284,0.0)"/>
+        </edges>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_q9Tl8KEeEeyjYoAVD5IwbQ" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_q9Tl8aEeEeyjYoAVD5IwbQ"/>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_sz0boKEeEeyjYoAVD5IwbQ" name="OSMObject" tooltipText="" outgoingEdges="_dTY-NqEfEeyjYoAVD5IwbQ _pkI-LKEfEeyjYoAVD5IwbQ _CxOcQqEhEeyjYoAVD5IwbQ _ibXSyKEhEeyjYoAVD5IwbQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMObject"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMObject"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IMkDgaEhEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_-cfigKEeEeyjYoAVD5IwbQ" name="id : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/id"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/id"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="__mhssaEeEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_AgyVgKEfEeyjYoAVD5IwbQ" name="sensorId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/sensorId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/sensorId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_CCxss6EfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_DnXr8KEfEeyjYoAVD5IwbQ" name="type : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/type"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/type"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_EmwFU6EfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_FEX1cKEfEeyjYoAVD5IwbQ" name="sensorType : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/sensorType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/sensorType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_GFGSp6EfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G9wHAKEhEeyjYoAVD5IwbQ" name="lastPosUpdate : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/lastPosUpdate"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/lastPosUpdate"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_IMkqlKEhEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_JRUXAKEfEeyjYoAVD5IwbQ" name="OSMPosition" tooltipText="" outgoingEdges="_bNQ_MKEfEeyjYoAVD5IwbQ" incomingEdges="_dTY-NqEfEeyjYoAVD5IwbQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMPosition"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMPosition"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ZP3eY6EfEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_L80T8KEfEeyjYoAVD5IwbQ" name="refSystemId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPosition/refSystemId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPosition/refSystemId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_M9oQsaEfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YNpzcKEfEeyjYoAVD5IwbQ" name="accuracy : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPosition/accuracy"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPosition/accuracy"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_ZP3ebaEfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_O8ZqgKEfEeyjYoAVD5IwbQ" name="OSMPoint" tooltipText="" incomingEdges="_bNQ_MKEfEeyjYoAVD5IwbQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMPoint"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMPoint"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Wex21aEfEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_TKeNcKEfEeyjYoAVD5IwbQ" name="x : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/x"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/x"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_UBptG6EfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_UqTBcKEfEeyjYoAVD5IwbQ" name="y : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/y"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/y"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_VbMS6KEfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_VvgWAKEfEeyjYoAVD5IwbQ" name="z : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/z"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/z"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_Weyd46EfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_bNQ_MKEfEeyjYoAVD5IwbQ" name="[0..1] osmpoint" sourceNode="_JRUXAKEfEeyjYoAVD5IwbQ" targetNode="_O8ZqgKEfEeyjYoAVD5IwbQ">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMPosition/osmpoint"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMPosition/osmpoint"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_bNRmQKEfEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_bNRmQqEfEeyjYoAVD5IwbQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_bNRmQaEfEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_dTY-NqEfEeyjYoAVD5IwbQ" name="[0..1] osmposition" sourceNode="_sz0boKEeEeyjYoAVD5IwbQ" targetNode="_JRUXAKEfEeyjYoAVD5IwbQ">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmposition"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmposition"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_dTY-N6EfEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_dTY-OaEfEeyjYoAVD5IwbQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_dTY-OKEfEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hzcpAKEfEeyjYoAVD5IwbQ" name="OSMOrientation" tooltipText="" incomingEdges="_pkI-LKEfEeyjYoAVD5IwbQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMOrientation"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMOrientation"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_oiBZ16EfEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_jXeAgKEfEeyjYoAVD5IwbQ" name="x : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/x"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/x"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_keKi1KEfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_k1ihAKEfEeyjYoAVD5IwbQ" name="y : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/y"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/y"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_lkl_dKEfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_l4S-gKEfEeyjYoAVD5IwbQ" name="z : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/z"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/z"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_nXan7aEfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_n6OaAKEfEeyjYoAVD5IwbQ" name="w : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/w"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/w"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_oiBZ5qEfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_pkI-LKEfEeyjYoAVD5IwbQ" name="[0..1] osmorientation" sourceNode="_sz0boKEeEeyjYoAVD5IwbQ" targetNode="_hzcpAKEfEeyjYoAVD5IwbQ">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmorientation"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmorientation"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_pkI-LaEfEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_pkI-L6EfEeyjYoAVD5IwbQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_pkI-LqEfEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_xISFAKEfEeyjYoAVD5IwbQ" name="OSMExtractedAttributes" tooltipText="" incomingEdges="_CxOcQqEhEeyjYoAVD5IwbQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XwGYIaO5EeydOu36HZmRaA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_2FWb8KEfEeyjYoAVD5IwbQ" name="batteryChargeLevel : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/batteryChargeLevel"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/batteryChargeLevel"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_3zXdCaEfEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_RkZLAKEgEeyjYoAVD5IwbQ" name="loadedItems : IntArray" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/loadedItems"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/loadedItems"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_6mR0EKEgEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="__rJcEKEgEeyjYoAVD5IwbQ" name="errors : IntArray" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/errors"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/errors"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_A1d6O6EhEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_VSyoMKO5EeydOu36HZmRaA" name="theta : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/theta"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/theta"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_XwINVqO5EeydOu36HZmRaA" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_CxOcQqEhEeyjYoAVD5IwbQ" name="[0..1] osmextractedattributes" sourceNode="_sz0boKEeEeyjYoAVD5IwbQ" targetNode="_xISFAKEfEeyjYoAVD5IwbQ">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmextractedattributes"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmextractedattributes"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_CxOcQ6EhEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_CxOcRaEhEeyjYoAVD5IwbQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_CxOcRKEhEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_XX3wEKEhEeyjYoAVD5IwbQ" name="OSMZoneDescriptor" tooltipText="" incomingEdges="_ibXSyKEhEeyjYoAVD5IwbQ" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_li6Se6EhEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_cGXfgKEhEeyjYoAVD5IwbQ" name="zoneId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/zoneId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/zoneId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_ebWZ8qEhEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_e0QCEKEhEeyjYoAVD5IwbQ" name="notificationType : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/notificationType"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/notificationType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_gEStu6EhEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ibXSyKEhEeyjYoAVD5IwbQ" name="[0..*] osmzonedescriptor" sourceNode="_sz0boKEeEeyjYoAVD5IwbQ" targetNode="_XX3wEKEhEeyjYoAVD5IwbQ">
+      <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmzonedescriptor"/>
+      <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmzonedescriptor"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ibX5wKEhEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ibX5wqEhEeyjYoAVD5IwbQ" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ibX5waEhEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_il2x0KEpEeyjYoAVD5IwbQ" name="OSMMonitoringTarget" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget"/>
+      <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_rA8HzaEpEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_ohCW0KEpEeyjYoAVD5IwbQ" name="monitoringTaskId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/monitoringTaskId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/monitoringTaskId"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_purOpqEpEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_qJoFQKEpEeyjYoAVD5IwbQ" name="protocol : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/protocol"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/protocol"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_rA8u3qEpEeyjYoAVD5IwbQ" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_q61gwKEeEeyjYoAVD5IwbQ"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+    <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//OSM"/>
+  </diagram:DSemanticDiagram>
+  <diagram:DSemanticDiagram uid="_OXjXYOMSEeylWPfcS0Eglw">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_OaeIgOMSEeylWPfcS0Eglw" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_OaeIgeMSEeylWPfcS0Eglw" type="Sirius" element="_OXjXYOMSEeylWPfcS0Eglw" measurementUnit="Pixel">
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_OaeIguMSEeylWPfcS0Eglw"/>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_Oaf9sOMSEeylWPfcS0Eglw" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_OagkwOMSEeylWPfcS0Eglw"/>
+    </ownedAnnotationEntries>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_OXnBwOMSEeylWPfcS0Eglw"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+    <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//IPos_Datamodel_print"/>
   </diagram:DSemanticDiagram>
 </xmi:XMI>
diff --git a/emf_datamodel/model/iPos_Datamodel.ecore b/emf_datamodel/model/iPos_Datamodel.ecore
index 6184edbb4b6b5ce15e70f3cb2b41b804615358d1..c71f06926d60eeb87f7ce2802ed370f18b82d6a1 100644
--- a/emf_datamodel/model/iPos_Datamodel.ecore
+++ b/emf_datamodel/model/iPos_Datamodel.ecore
@@ -3,33 +3,20 @@
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="iPos_Datamodel" nsURI="http://www.example.org/iPos_Datamodel"
     nsPrefix="iPos_Datamodel">
   <eClassifiers xsi:type="ecore:EClass" name="Agent" eSuperTypes="#//Entity">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="lObject" upperBound="-1"
         eType="#//LocalizableObject"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="netInt" lowerBound="1"
-        eType="#//NetworkInterface"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="pSensors" upperBound="-1"
-        eType="#//PositionSensor"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="agentType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Entity">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LocalizableObject" eSuperTypes="#//Entity">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="pSensor" lowerBound="1"
-        eType="#//PositionSensor"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="currentPlacing" eType="#//Placing"
-        eOpposite="#//Placing/lObject"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastPosUpdate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="PositionSensor" eSuperTypes="#//Entity">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="agent" eType="#//Agent"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="lObject" eType="#//LocalizableObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="currentPlacing" eType="#//Placing"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Placing">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="lObject" lowerBound="1"
-        eType="#//LocalizableObject" eOpposite="#//LocalizableObject/currentPlacing"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="position" lowerBound="1"
         eType="#//Position"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="orientation" lowerBound="1"
@@ -37,17 +24,12 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Position">
     <eStructuralFeatures xsi:type="ecore:EReference" name="accuracy" eType="#//Accuracy"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Orientation"/>
-  <eClassifiers xsi:type="ecore:EClass" name="AbsolutePosition" eSuperTypes="#//Position">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="point" lowerBound="1" eType="#//WGS84Point"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RelativePosition" eSuperTypes="#//Position">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="reference" lowerBound="1"
-        eType="#//ReferenceSystem"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="point" lowerBound="1" eType="#//Point"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="referenceSystem" lowerBound="1"
+        eType="#//ReferenceSystem"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="WGS84Point">
+  <eClassifiers xsi:type="ecore:EClass" name="Orientation"/>
+  <eClassifiers xsi:type="ecore:EClass" name="WGS84Point" eSuperTypes="#//Point">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="longitude" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Double"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="latitude" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Double"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="altitude" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Double"/>
@@ -63,14 +45,15 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="z" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReferenceSystem">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="origin" lowerBound="1"
-        eType="#//Placing"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="origin" eType="#//Placing"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Zone" eSuperTypes="#//ReferenceSystem">
+  <eClassifiers xsi:type="ecore:EClass" name="Zone">
     <eStructuralFeatures xsi:type="ecore:EReference" name="space" upperBound="-1"
         eType="#//Space" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ZoneMap" eSuperTypes="#//MapType">
     <eStructuralFeatures xsi:type="ecore:EReference" name="zone" upperBound="-1" eType="#//Zone"
@@ -80,9 +63,10 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="z" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="centrePoint" lowerBound="1"
+        eType="#//Placing"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="MapType"/>
-  <eClassifiers xsi:type="ecore:EClass" name="NetworkInterface"/>
   <eClassifiers xsi:type="ecore:EClass" name="Quaternion" eSuperTypes="#//Orientation">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
@@ -94,10 +78,10 @@
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Point"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Rawdata" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  <eClassifiers xsi:type="ecore:EClass" name="RawdataEvent">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Proximity" eSuperTypes="#//Rawdata">
+  <eClassifiers xsi:type="ecore:EClass" name="Proximity" eSuperTypes="#//RawdataEvent">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="tagId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="scannerId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -109,41 +93,41 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="tagData" transient="true">
       <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
         <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-        <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
       </eGenericType>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="IMU" eSuperTypes="#//Rawdata">
+  <eClassifiers xsi:type="ecore:EClass" name="IMU" eSuperTypes="#//RawdataEvent">
     <eStructuralFeatures xsi:type="ecore:EReference" name="angularrate" lowerBound="1"
-        eType="#//AngularRate"/>
+        eType="#//Quaternion"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="acceleration" lowerBound="1"
         eType="#//Acceleration"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AngularRate"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Acceleration"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Beacon" eSuperTypes="#//Rawdata">
+  <eClassifiers xsi:type="ecore:EClass" name="Acceleration">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="z" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Beacon" eSuperTypes="#//RawdataEvent">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="distances" transient="true">
       <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
         <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
+        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
       </eGenericType>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PositionEvent">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="placing" lowerBound="1"
-        eType="#//Placing"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"
         transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lObjectId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="zonedescriptors" upperBound="-1"
+        eType="#//ZoneDescriptor"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="placing" lowerBound="1"
+        eType="#//Placing"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RawdataEvent">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="rawdata" lowerBound="1"
-        upperBound="-1" eType="#//Rawdata"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TrackingRequest"/>
-  <eClassifiers xsi:type="ecore:EClass" name="MonitoringRequest"/>
-  <eClassifiers xsi:type="ecore:EClass" name="WorldModelUpdateRequest"/>
-  <eClassifiers xsi:type="ecore:EClass" name="DataStorageRequest"/>
   <eClassifiers xsi:type="ecore:EClass" name="EventFilterConfiguration">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="positionAmbiguityStrategy"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -161,11 +145,8 @@
       </eGenericType>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="eventfiltercondition" upperBound="-1"
-        eType="#//EventFilterCondition"/>
+        eType="#//TrackingTask"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="WorldModelQueryRequest"/>
-  <eClassifiers xsi:type="ecore:EClass" name="DataStorageQueryRequest"/>
-  <eClassifiers xsi:type="ecore:EClass" name="AgentRegistrationRequest"/>
   <eClassifiers xsi:type="ecore:EClass" name="MonitoringTask">
     <eStructuralFeatures xsi:type="ecore:EReference" name="eventfilterconfiguration"
         lowerBound="1" eType="#//EventFilterConfiguration"/>
@@ -177,15 +158,18 @@
   <eClassifiers xsi:type="ecore:EClass" name="WorldModel">
     <eStructuralFeatures xsi:type="ecore:EReference" name="agent" upperBound="-1"
         eType="#//Agent"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="zonemap" upperBound="-1"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="zoneMap" upperBound="-1"
         eType="#//ZoneMap"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="pois" upperBound="-1" eType="#//POI"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="referenceSystem" upperBound="-1"
+        eType="#//ReferenceSystem"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Barcode" eSuperTypes="#//Proximity"/>
   <eClassifiers xsi:type="ecore:EClass" name="OtherProx" eSuperTypes="#//Proximity">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" transient="true">
       <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
         <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-        <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
       </eGenericType>
     </eStructuralFeatures>
   </eClassifiers>
@@ -193,32 +177,34 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="rss" transient="true">
       <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
         <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
+        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//DoubleObject"/>
       </eGenericType>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="UWB" eSuperTypes="#//Beacon"/>
-  <eClassifiers xsi:type="ecore:EClass" name="SensorConfigurationRequest"/>
   <eClassifiers xsi:type="ecore:EClass" name="OtherBeacon" eSuperTypes="#//Beacon">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" transient="true">
       <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
         <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-        <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
       </eGenericType>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ReferencePosition">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="position" lowerBound="1"
-        eType="#//Position"/>
+  <eClassifiers xsi:type="ecore:EClass" name="POI">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="placing" lowerBound="1"
+        eType="#//Placing"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" transient="true">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </eGenericType>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="EventFilterCondition">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeCondition" eType="#//StringArray"
         transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="categoryCondition" eType="#//StringList"
-        transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="idCondition" eType="#//StringList"
-        transient="true" defaultValueLiteral=""/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="accuracyCondition" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"
         transient="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="positionCondition" eType="#//FloatArray"
@@ -230,12 +216,271 @@
         transient="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="filterStructure" eType="#//BooleanList"
         transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="positionConditionCell"
-        eType="#//FloatArray3d"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="positionConditionCells"
+        transient="true">
+      <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+        <eTypeArguments eClassifier="#//FloatArray3d"/>
+      </eGenericType>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="idCondition" eType="#//StringList"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="categoryCondition" eType="#//StringList"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyCondition" eType="#//StringList"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="StringList" instanceClassName="java.util.List&lt;java.lang.String>"/>
   <eClassifiers xsi:type="ecore:EDataType" name="StringArray" instanceClassName="java.util.ArrayList&lt;java.lang.String[]>"/>
   <eClassifiers xsi:type="ecore:EDataType" name="FloatArray3d" instanceClassName="java.util.ArrayList&lt;java.lang.Float[][]>"/>
   <eClassifiers xsi:type="ecore:EDataType" name="BooleanList" instanceClassName="java.lang.boolean[]"/>
   <eClassifiers xsi:type="ecore:EDataType" name="FloatArray" instanceClassName="java.util.ArrayList&lt;java.lang.Float[]>"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ZoneDescriptor">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="zoneId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="notificationType" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DataStorageQueryResponse">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="positionEvents" upperBound="-1"
+        eType="#//PositionEvent"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="trackingTaskId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="MessageReceivedEvent">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="protocolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializedMsg" eType="#//ByteArray"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="agentId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extractedAttributes" eType="#//ListOfStringMaps"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="timestamp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EDataType" name="ByteArray" instanceClassName="java.lang.byte[]"/>
+  <eClassifiers xsi:type="ecore:EDataType" name="ListOfStringMaps" instanceClassName="java.util.LinkedList&lt;java.util.HashMap&lt;java.lang.String, java.lang.String>>"/>
+  <eClassifiers xsi:type="ecore:EDataType" name="IntArray" instanceClassName="int[]"/>
+  <eSubpackages name="OFBiz" nsURI="ofbiz" nsPrefix="ofbiz">
+    <eClassifiers xsi:type="ecore:EClass" name="Picklist">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="picklistId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="picklistRoles" upperBound="-1"
+          eType="#//OFBiz/PicklistRole"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="picklistBins" upperBound="-1"
+          eType="#//OFBiz/PicklistBin"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="PicklistBin">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="picklistId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="binLocationNumber" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="picklistItems" upperBound="-1"
+          eType="#//OFBiz/PicklistItem"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="PicklistItem">
+      <eStructuralFeatures xsi:type="ecore:EReference" name="inventoryItem" lowerBound="1"
+          eType="#//OFBiz/InventoryItem"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="InventoryItem">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="inventoryItemId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="containerId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="productId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="PicklistRole">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="picklistId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="partyId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="roleTypeId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+    </eClassifiers>
+  </eSubpackages>
+  <eSubpackages name="IPosDevKit" nsURI="IDK" nsPrefix="IDK">
+    <eClassifiers xsi:type="ecore:EClass" name="TrackingRequest"/>
+    <eClassifiers xsi:type="ecore:EClass" name="MonitoringRequest">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="frameIds" eType="#//StringList"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="delta" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="updateFrequency" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//StringList"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="#//StringList"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="fusionStrategy" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="exitNotification" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="properties" eType="#//StringList"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="monitoringTaskId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="requestorProtocol" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializationType" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="refSystemId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="WorldModelUpdateRequest"/>
+    <eClassifiers xsi:type="ecore:EClass" name="DataStorageRequest"/>
+    <eClassifiers xsi:type="ecore:EClass" name="WorldModelQueryRequest"/>
+    <eClassifiers xsi:type="ecore:EClass" name="DataStorageQueryRequest">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="trackingTaskId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="AgentRegistrationRequest"/>
+    <eClassifiers xsi:type="ecore:EClass" name="SensorConfigurationRequest"/>
+    <eClassifiers xsi:type="ecore:EClass" name="IposPositionEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="agentId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorType" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastPosUpdate" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="position" lowerBound="1"
+          eType="#//Position"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="orientation" lowerBound="1"
+          eType="#//Orientation"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="zoneDescriptors" upperBound="-1"
+          eType="#//ZoneDescriptor"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosRawdataEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="agentId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="agentType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosBeaconEvent" eSuperTypes="#//IPosDevKit/IPosRawdataEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="distances" transient="true">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//DoubleObject"/>
+        </eGenericType>
+      </eStructuralFeatures>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosUWBEvent" eSuperTypes="#//IPosDevKit/IPosBeaconEvent"/>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosBTEvent" eSuperTypes="#//IPosDevKit/IPosBeaconEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="rss" transient="true">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//DoubleObject"/>
+        </eGenericType>
+      </eStructuralFeatures>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosProximityEvent" eSuperTypes="#//IPosDevKit/IPosRawdataEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="tagId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosNFCEvent" eSuperTypes="#//IPosDevKit/IPosProximityEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="tagData" transient="true">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eStructuralFeatures>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosBarcodeEvent" eSuperTypes="#//IPosDevKit/IPosProximityEvent"/>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosRFIDEvent" eSuperTypes="#//IPosDevKit/IPosProximityEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosOtherProxEvent" eSuperTypes="#//IPosDevKit/IPosProximityEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" transient="true">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eStructuralFeatures>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="IPosOtherBeaconEvent" eSuperTypes="#//IPosDevKit/IPosBeaconEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" transient="true">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+        </eGenericType>
+      </eStructuralFeatures>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="IposMsgRcvEvent">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="protocolName" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializedMsg" eType="#//ByteArray"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastPosUpdate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="lastKnownPosition" eType="#//Position"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="lastKnownOrientation"
+          eType="#//Orientation"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="lastKnownZonedescriptors"
+          upperBound="-1" eType="#//ZoneDescriptor"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="agentId" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="extractedAttributes"
+          eType="#//ListOfStringMaps"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="timestamp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+  </eSubpackages>
+  <eSubpackages name="Tooz" nsURI="tooz" nsPrefix="tooz">
+    <eClassifiers xsi:type="ecore:EClass" name="MonitoringTarget">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetSensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="DistantEntity">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="localSensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="localAgentId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="distantEntityId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="distance" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Double"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="proximityIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="entityData" transient="true">
+        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+        </eGenericType>
+      </eStructuralFeatures>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
+    </eClassifiers>
+  </eSubpackages>
+  <eSubpackages name="VDA5050" nsURI="vda5050" nsPrefix="vda5050">
+    <eClassifiers xsi:type="ecore:EClass" name="AgvState">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="serialNumber" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastNodeId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="batteryState" eType="#//VDA5050/BatteryState"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="errors" upperBound="-1"
+          eType="#//VDA5050/Error"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="agvposition" eType="#//VDA5050/AgvPosition"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="loads" upperBound="-1"
+          eType="#//VDA5050/Load"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="manufacturer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="BatteryState">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="batteryCharge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="Error">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="errorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="AgvPosition">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="theta" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="mapId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="Load">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+  </eSubpackages>
+  <eSubpackages name="OSM" nsURI="osm" nsPrefix="osm">
+    <eClassifiers xsi:type="ecore:EClass" name="OSMObject">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="osmposition" eType="#//OSM/OSMPosition"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="osmorientation" eType="#//OSM/OSMOrientation"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="osmextractedattributes"
+          eType="#//OSM/OSMExtractedAttributes"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastPosUpdate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="osmzonedescriptor" upperBound="-1"
+          eType="#//OSM/OSMZoneDescriptor"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="OSMPosition">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="refSystemId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="accuracy" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EReference" name="osmpoint" eType="#//OSM/OSMPoint"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="OSMPoint">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="z" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="OSMOrientation">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="z" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="w" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="OSMExtractedAttributes">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="batteryChargeLevel" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadedItems" eType="#//IntArray"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="errors" eType="#//IntArray"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="theta" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="OSMZoneDescriptor">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="zoneId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="notificationType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="OSMMonitoringTarget">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="monitoringTaskId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="protocol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eClassifiers>
+  </eSubpackages>
+  <eSubpackages name="IPos_Datamodel_print" nsURI="dmprint" nsPrefix="dmprint"/>
 </ecore:EPackage>
diff --git a/emf_datamodel/model/iPos_Datamodel.genmodel b/emf_datamodel/model/iPos_Datamodel.genmodel
index 3a558909111820de8e47175f1b907a863d952db7..d7797a7d1bcc86c58d6ea2e826c9d0f19885601f 100644
--- a/emf_datamodel/model/iPos_Datamodel.genmodel
+++ b/emf_datamodel/model/iPos_Datamodel.genmodel
@@ -15,42 +15,32 @@
     <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//FloatArray3d"/>
     <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//BooleanList"/>
     <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//FloatArray"/>
+    <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//ByteArray"/>
+    <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//ListOfStringMaps"/>
+    <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//IntArray"/>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Agent">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Agent/name"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Agent/lObject"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Agent/netInt"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Agent/pSensors"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Agent/agentType"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Entity">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Entity/id"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//LocalizableObject">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//LocalizableObject/pSensor"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//LocalizableObject/currentPlacing"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//LocalizableObject/lastPosUpdate"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//LocalizableObject/type"/>
-    </genClasses>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//PositionSensor">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//PositionSensor/agent"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//PositionSensor/lObject"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//PositionSensor/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//LocalizableObject/sensorType"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//LocalizableObject/agent"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//LocalizableObject/currentPlacing"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Placing">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Placing/lObject"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Placing/position"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Placing/orientation"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Position">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Position/accuracy"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Position/point"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Position/referenceSystem"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Orientation"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//AbsolutePosition">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//AbsolutePosition/point"/>
-    </genClasses>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//RelativePosition">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//RelativePosition/reference"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//RelativePosition/point"/>
-    </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//WGS84Point">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//WGS84Point/longitude"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//WGS84Point/latitude"/>
@@ -73,6 +63,8 @@
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Zone">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Zone/space"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Zone/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Zone/id"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//ZoneMap">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//ZoneMap/zone"/>
@@ -81,9 +73,9 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Space/x"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Space/y"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Space/z"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Space/centrePoint"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//MapType"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//NetworkInterface"/>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Quaternion">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Quaternion/x"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Quaternion/y"/>
@@ -94,8 +86,8 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Gaussian/confidenceInterval"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Point"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//Rawdata">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Rawdata/sensorId"/>
+    <genClasses ecoreClass="iPos_Datamodel.ecore#//RawdataEvent">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//RawdataEvent/timeStamp"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Proximity">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Proximity/tagId"/>
@@ -111,33 +103,30 @@
     <genClasses ecoreClass="iPos_Datamodel.ecore#//IMU">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IMU/angularrate"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IMU/acceleration"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IMU/sensorId"/>
+    </genClasses>
+    <genClasses ecoreClass="iPos_Datamodel.ecore#//Acceleration">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Acceleration/x"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Acceleration/y"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Acceleration/z"/>
     </genClasses>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//AngularRate"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//Acceleration"/>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Beacon">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Beacon/distances"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Beacon/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Beacon/sensorId"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//PositionEvent">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//PositionEvent/placing"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//PositionEvent/timeStamp"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//PositionEvent/lObjectId"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//PositionEvent/zonedescriptors"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//PositionEvent/placing"/>
     </genClasses>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//RawdataEvent">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//RawdataEvent/rawdata"/>
-    </genClasses>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//TrackingRequest"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//MonitoringRequest"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//WorldModelUpdateRequest"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//DataStorageRequest"/>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//EventFilterConfiguration">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterConfiguration/positionAmbiguityStrategy"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterConfiguration/positionAmbiguityParameters"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterConfiguration/filterCriteria"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//EventFilterConfiguration/eventfiltercondition"/>
     </genClasses>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//WorldModelQueryRequest"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//DataStorageQueryRequest"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//AgentRegistrationRequest"/>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//MonitoringTask">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//MonitoringTask/eventfilterconfiguration"/>
     </genClasses>
@@ -146,7 +135,9 @@
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//WorldModel">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//WorldModel/agent"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//WorldModel/zonemap"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//WorldModel/zoneMap"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//WorldModel/pois"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//WorldModel/referenceSystem"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//Barcode"/>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//OtherProx">
@@ -156,25 +147,248 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Bluetooth/rss"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//UWB"/>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//SensorConfigurationRequest"/>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//OtherBeacon">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OtherBeacon/data"/>
     </genClasses>
-    <genClasses ecoreClass="iPos_Datamodel.ecore#//ReferencePosition">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//ReferencePosition/position"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//ReferencePosition/id"/>
+    <genClasses ecoreClass="iPos_Datamodel.ecore#//POI">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//POI/placing"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//POI/description"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//POI/data"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//POI/id"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//EventFilterCondition">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/timeCondition"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/categoryCondition"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/idCondition"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/accuracyCondition"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/positionCondition"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/timeMinInterval"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/positionDelta"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/sensorIdCondition"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/filterStructure"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/positionConditionCell"/>
-    </genClasses>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/positionConditionCells"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/idCondition"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/categoryCondition"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterCondition/propertyCondition"/>
+    </genClasses>
+    <genClasses ecoreClass="iPos_Datamodel.ecore#//ZoneDescriptor">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//ZoneDescriptor/zoneId"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//ZoneDescriptor/notificationType"/>
+    </genClasses>
+    <genClasses ecoreClass="iPos_Datamodel.ecore#//DataStorageQueryResponse">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//DataStorageQueryResponse/positionEvents"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//DataStorageQueryResponse/trackingTaskId"/>
+    </genClasses>
+    <genClasses ecoreClass="iPos_Datamodel.ecore#//MessageReceivedEvent">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/protocolName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/serializedMsg"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/agentId"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/extractedAttributes"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MessageReceivedEvent/timestamp"/>
+    </genClasses>
+    <nestedGenPackages prefix="OFBiz" disposableProviderFactory="true" ecorePackage="iPos_Datamodel.ecore#//OFBiz">
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OFBiz/Picklist">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/Picklist/picklistId"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OFBiz/Picklist/picklistRoles"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OFBiz/Picklist/picklistBins"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OFBiz/PicklistBin">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/PicklistBin/picklistId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/PicklistBin/binLocationNumber"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OFBiz/PicklistBin/picklistItems"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OFBiz/PicklistItem">
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OFBiz/PicklistItem/inventoryItem"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OFBiz/InventoryItem">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/InventoryItem/inventoryItemId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/InventoryItem/containerId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/InventoryItem/productId"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OFBiz/PicklistRole">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/PicklistRole/picklistId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/PicklistRole/partyId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OFBiz/PicklistRole/roleTypeId"/>
+      </genClasses>
+    </nestedGenPackages>
+    <nestedGenPackages prefix="IPosDevKit" disposableProviderFactory="true" ecorePackage="iPos_Datamodel.ecore#//IPosDevKit">
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/TrackingRequest"/>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/frameIds"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/delta"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/updateFrequency"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/type"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/id"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/fusionStrategy"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/exitNotification"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/properties"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/monitoringTaskId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/requestorProtocol"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/serializationType"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/MonitoringRequest/refSystemId"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/WorldModelUpdateRequest"/>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/DataStorageRequest"/>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/WorldModelQueryRequest"/>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/DataStorageQueryRequest">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/DataStorageQueryRequest/trackingTaskId"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/AgentRegistrationRequest"/>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/SensorConfigurationRequest"/>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/agentId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/sensorId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/type"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/sensorType"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/lastPosUpdate"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/position"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/orientation"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IPosDevKit/IposPositionEvent/zoneDescriptors"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/agentId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/sensorId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/agentType"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/sensorType"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosRawdataEvent/timeStamp"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosBeaconEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosBeaconEvent/distances"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosUWBEvent"/>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosBTEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosBTEvent/rss"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosProximityEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosProximityEvent/tagId"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosNFCEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosNFCEvent/tagData"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosBarcodeEvent"/>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosRFIDEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosRFIDEvent/location"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherProxEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosOtherProxEvent/data"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IPosOtherBeaconEvent/data"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/protocolName"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/serializedMsg"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastPosUpdate"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownPosition"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownOrientation"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/lastKnownZonedescriptors"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/agentId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/extractedAttributes"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IPosDevKit/IposMsgRcvEvent/timestamp"/>
+      </genClasses>
+    </nestedGenPackages>
+    <nestedGenPackages prefix="Tooz" disposableProviderFactory="true" ecorePackage="iPos_Datamodel.ecore#//Tooz">
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//Tooz/MonitoringTarget">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/MonitoringTarget/targetSensorId"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//Tooz/DistantEntity">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/localSensorId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/localAgentId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/distantEntityId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/distance"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/proximityIndex"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/entityData"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Tooz/DistantEntity/timeStamp"/>
+      </genClasses>
+    </nestedGenPackages>
+    <nestedGenPackages prefix="VDA5050" disposableProviderFactory="true" ecorePackage="iPos_Datamodel.ecore#//VDA5050">
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/AgvState">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvState/timeStamp"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvState/serialNumber"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvState/lastNodeId"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//VDA5050/AgvState/batteryState"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//VDA5050/AgvState/errors"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//VDA5050/AgvState/agvposition"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//VDA5050/AgvState/loads"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvState/manufacturer"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/BatteryState">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/BatteryState/batteryCharge"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/Error">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/Error/errorType"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/AgvPosition">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvPosition/x"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvPosition/y"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvPosition/theta"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/AgvPosition/mapId"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//VDA5050/Load">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/Load/loadId"/>
+      </genClasses>
+    </nestedGenPackages>
+    <nestedGenPackages prefix="OSM" disposableProviderFactory="true" ecorePackage="iPos_Datamodel.ecore#//OSM">
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMObject">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/id"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/sensorId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/type"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/sensorType"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMObject/osmposition"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMObject/osmorientation"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMObject/osmextractedattributes"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/lastPosUpdate"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMObject/osmzonedescriptor"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMPosition">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPosition/refSystemId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPosition/accuracy"/>
+        <genFeatures notify="false" createChild="false" propertySortChoices="true"
+            ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMPosition/osmpoint"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMPoint">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPoint/x"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPoint/y"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPoint/z"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMOrientation">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMOrientation/x"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMOrientation/y"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMOrientation/z"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMOrientation/w"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/batteryChargeLevel"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/loadedItems"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/errors"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/theta"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/zoneId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/notificationType"/>
+      </genClasses>
+      <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/monitoringTaskId"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/protocol"/>
+      </genClasses>
+    </nestedGenPackages>
+    <nestedGenPackages prefix="IPos_Datamodel_print" disposableProviderFactory="true"
+        ecorePackage="iPos_Datamodel.ecore#//IPos_Datamodel_print"/>
   </genPackages>
 </genmodel:GenModel>
diff --git a/emf_datamodel/model/iPos_Datamodel.jpg b/emf_datamodel/model/iPos_Datamodel.jpg
deleted file mode 100644
index 86fdaaf1c8c8231d456b4ef2cbdc1f6ca1ea747f..0000000000000000000000000000000000000000
Binary files a/emf_datamodel/model/iPos_Datamodel.jpg and /dev/null differ
diff --git a/init_Industrierobotik.txt b/init_Industrierobotik.txt
new file mode 100644
index 0000000000000000000000000000000000000000..969b1b7c0a18d45c5c21cd9c7c5cafe4bc813bf6
--- /dev/null
+++ b/init_Industrierobotik.txt
@@ -0,0 +1,5 @@
+{"frames": [{"id": "cobot1_door_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 0.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 6.0, "y": 4.0, "z":6.0}]}, {"id": "cobot1_window_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 4.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 6.0, "y": 4.0, "z":6.0}]}, {"id": "robolab_east", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 4.0,"y": 2.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 4.0, "y": 4.0, "z":4.0}]}, {"id": "robolab_west", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": -4.0,"y": 2.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 8.0, "y": 10.0, "z":6.0}]}, {"id": "robolab_armarea", "space": [{"position": {"refSystemId": "CETI_ROBOTARM_CELL", "point": {"x": 0.0,"y": 0.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 8.0, "y": 10.0, "z":6.0}]} ]}
+{"refSystems": [{"id": "ROOT"}, {"id": "CETI_ROOT", "position": {"refSystemId": "ROOT", "point": {"x": 0.5,"y": 0.75,"z": 1.0}, "accuracy": 1.0}, "orientation": {"x": 0.7071067811865477,"y": 0.0,"z": 0.0, "w": 0.7071067811865477}}, {"id": "CETI_ROBOLAB", "position": {"refSystemId": "CETI_ROOT", "point": {"x": 0.2,"y": 0.2,"z": 0.2}, "accuracy": 1.0}, "orientation": {"x": 0.4082481001180531,"y": 0.4082481001180531,"z": 0.4082481001180531, "w": 0.7071067811865477}}, {"id": "CETI_OFFICE", "position": {"refSystemId": "CETI_ROOT", "point": {"x": 2.0,"y": 2.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}}, {"id": "TL_TESTHALL", "position": {"refSystemId": "ROOT", "point": {"x": 40.0,"y": 60.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.21643961393810285, "w": 0.9762960071199334}}, {"id": "CETI_ROBOTARM_CELL", "position": {"refSystemId": "CETI_ROBOLAB", "point": {"x": 0.0,"y": 1.2,"z": 2.2}, "accuracy": 1.0}, "orientation": {"x": 0.2705992818596786,"y": 0.2705992818596786,"z": 0.0, "w": 0.9238795325112868}}]}
+{"objectConfigs": [{"agentId": "Employee_1", "sensorId": "UWB_2", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "UWB_1", "agentType": "ROBOT", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "98:CD:AC:26:2D:18", "agentType": "ROBOT", "sensorType": "RFID_SCANNER"}, {"agentId": "turtlebot", "sensorId": "handy1", "agentType": "ROBOT", "sensorType": "IMU"}, {"agentId": "tooz_employee", "sensorId": "tooz_employee_uwb", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "tooz_employee", "sensorId": "tooz_employee_bt", "agentType": "HUMAN", "sensorType": "BT"}, {"agentId": "TL_TUD-Virtual_AGV", "sensorId": "TL_TUD-Virtual_AGV", "agentType": "Robot", "sensorType": "virtual"}, {"agentId": "TL_TUD-1", "sensorId": "TL_TUD-1", "agentType": "Robot", "sensorType": "virtual"}, {"agentId": "TL_TUD-2", "sensorId": "TL_TUD-2", "agentType": "Robot", "sensorType": "virtual"}, {"agentId": "TL_TUD-3", "sensorId": "TL_TUD-3", "agentType": "Robot", "sensorType": "virtual"}, {"agentId": "TL_TUD-4", "sensorId": "TL_TUD-4", "agentType": "Robot", "sensorType": "virtual"}, {"agentId": "TL_TUD-5", "sensorId": "TL_TUD-5", "agentType": "Robot", "sensorType": "virtual"}]}
+{"pois": [{"id": "UWB_BEACON_1", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 3.1,"y": 0.5,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "UWB_BEACON_2", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": -0.3,"y": 4.5,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}}, {"id": "83221710", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 2.1,"y": 0.4,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "31762128", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 2.2,"y": 3.4,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "885", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "2934", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 4.24,"y": 1.33,"z": 1.0}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "3383", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 1.25,"y": 5.89,"z": 1.06}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "1107", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 4.24,"y": 5.83,"z": 1.05}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }]}
+{"monitoringRequests": [{"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "RobolabMonitoringCeti", "refSystemId": "CETI_ROBOTARM_CELL", "serializationType": "protobuf"}, {"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "AGVViewer_VDA5050", "refSystemId": "ROOT", "serializationType": "json"}]}
\ No newline at end of file
diff --git a/init_Orderpicker.txt b/init_Orderpicker.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3baf143e7703bcacbe1e832b9d0d9e592c7c058b
--- /dev/null
+++ b/init_Orderpicker.txt
@@ -0,0 +1,5 @@
+{"frames": [{"id": "box_1", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 0.5,"y": 2.7,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 0.8, "y": 0.5, "z":15.0}]}, {"id": "box_2", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 0.5,"y": 3.45,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 0.8, "y": 0.5, "z":15.0}]}, {"id": "box_3", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 0.5,"y": 4.25,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 0.8, "y": 0.5, "z":15.0}]}, {"id": "shipmentBin_1", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 3.0,"y": 2.57,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 0.8, "y": 0.5, "z":15.0}]}, {"id": "shipmentBin_2", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.7,"y": 3.75,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 0.8, "y": 0.5, "z":15.0}]}, {"id": "cobot1_door_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 1.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 6.0, "y": 4.0, "z":6.0}]}, {"id": "cobot1_window_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 5.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 6.0, "y": 4.0, "z":6.0}]} ]}
+{"refSystems": [{"id": "ROOT"}, {"id": "CETI_ROOT", "position": {"refSystemId": "ROOT", "point": {"x": 3.05,"y": 2.08,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}}]}
+{"objectConfigs": [{"agentId": "Employee_1", "sensorId": "UWB_2", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "UWB_1", "agentType": "ROBOT", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "98:CD:AC:26:2D:18", "agentType": "ROBOT", "sensorType": "RFID_SCANNER"}]}
+{"pois": [{"id": "885", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "2934", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 4.24,"y": 1.33,"z": 1.0}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "3383", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 1.25,"y": 5.89,"z": 1.06}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "1107", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 4.24,"y": 5.83,"z": 1.05}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "83221710", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 1.8,"y": 2.3,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "31762128", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 1.6,"y": 2.9,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }]}
+{"monitoringRequests": [{"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "RobolabMonitoringCeti", "refSystemId": "CETI_ROOT", "serializationType": "protobuf"}, {"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "ipos/client/position", "serializationType": "json"}]}
\ No newline at end of file
diff --git a/init_Sensordatenfusion.txt b/init_Sensordatenfusion.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a79b0ffe8ba43eb9b40a560fd4524c0d9c8d7a08
--- /dev/null
+++ b/init_Sensordatenfusion.txt
@@ -0,0 +1,5 @@
+{"frames": [{"id": "robolab", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 0.0,"z": 0.0}, "accuracy": 0.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 10.0, "y": 10.0, "z":10.0}]} ]}
+{"refSystems": [{"id": "ROOT"}]}
+{"objectConfigs": [{"agentId": "turtlebot", "sensorId": "UWB_1", "agentType": "ROBOT", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "98:CD:AC:26:2D:18", "agentType": "ROBOT", "sensorType": "RFID_SCANNER"}]}
+{"pois": [{"id": "83221710", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 2.1,"y": 0.4,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "31762128", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 2.2,"y": 3.4,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }]}
+{"monitoringRequests": [{"frameId": "robolab", "monitoringTaskId": "ipos/client/position", "serializationType": "json"}]}
\ No newline at end of file
diff --git a/logback-spring.xml b/logback-spring.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d94e304855d95c18bae85380a1b18636ee46da84
--- /dev/null
+++ b/logback-spring.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration>
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <filter class="ipos.project.CustomLoggingFilter" />
+	<layout class="ch.qos.logback.classic.PatternLayout">
+		<Pattern>
+			%black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}):: %msg%n%throwable
+		</Pattern>
+	</layout>
+  </appender>
+
+<appender name="FILE" class="ch.qos.logback.core.FileAppender">
+    <file>testFile.log</file>
+	<append>true</append>
+    <!-- set immediateFlush to false for much higher logging throughput -->
+    <immediateFlush>false</immediateFlush>
+    <!-- encoders are assigned the type
+         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
+    <encoder>
+      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
+    </encoder>
+  </appender>
+
+
+  <root level="INFO">
+    <appender-ref ref="STDOUT" />
+	<appender-ref ref="FILE" />
+  </root>
+</configuration>
\ No newline at end of file
diff --git a/models b/models
new file mode 160000
index 0000000000000000000000000000000000000000..e935f40576d779242f0b4f4ed1dae6e713d483b2
--- /dev/null
+++ b/models
@@ -0,0 +1 @@
+Subproject commit e935f40576d779242f0b4f4ed1dae6e713d483b2
diff --git a/src/main/java/ipos/project/CustomLoggingFilter.java b/src/main/java/ipos/project/CustomLoggingFilter.java
new file mode 100644
index 0000000000000000000000000000000000000000..d3ff6af081244c55f2894828415cd761744b9d4e
--- /dev/null
+++ b/src/main/java/ipos/project/CustomLoggingFilter.java
@@ -0,0 +1,42 @@
+package ipos.project;
+
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.filter.Filter;
+import ch.qos.logback.core.spi.FilterReply;
+
+public class CustomLoggingFilter extends Filter<ILoggingEvent> {
+
+    @Override
+    public FilterReply decide(ILoggingEvent event) {
+        if (event.getMessage().contains("Eventfilter:")) {
+            return FilterReply.DENY;
+        } else if (event.getMessage().contains("SDF:")) {
+            return FilterReply.DENY;
+        } else if (event.getMessage().contains("SDF-DEBUG:")) {
+            return FilterReply.DENY;
+        } else if (event.getMessage().contains("SDF-PUB:")) {
+            return FilterReply.DENY;
+        } else if (event.getMessage().contains("INDFRO:")){
+           return FilterReply.ACCEPT;
+        } else if (event.getMessage().contains("INDFRO-DEBUG:")){
+            return FilterReply.ACCEPT;
+        } else if (event.getMessage().contains("ODO:")){
+            return FilterReply.DENY;
+        } else if (event.getMessage().contains("Received a Message:")){ // MQTT-library meldet sich
+            return FilterReply.DENY;
+        } else if (event.getMessage().contains("OP:")){
+            return FilterReply.DENY;
+        } else if (event.getMessage().contains("TOOZ:")){
+            return FilterReply.ACCEPT;
+        } else if (event.getMessage().contains("VDA5050:")){
+            return FilterReply.DENY;
+        } else if (event.getMessage().contains("OSM:")){
+            return FilterReply.DENY;
+        }else if (event.getMessage().contains("SHELL:")){
+            return FilterReply.ACCEPT;
+        } else {
+            return FilterReply.ACCEPT;
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration.java
deleted file mode 100644
index 9d3e0cbd8b310fcf3da302402f0c8ccfaf857750..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package ipos.project.DataModellntegration;
-
-import ipos.models.SimpleScene.IposPosition;
-import ipos.project.DataModellntegration.service.impl.ExternalPubServiceImpl;
-import ipos.project.mapper.ProtoJsonMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jms.annotation.JmsListener;
-import org.springframework.stereotype.Component;
-
-@Component
-public class SimpleSceneIntegration {
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
-
-    @Autowired
-    private ExternalPubServiceImpl mqttService;
-
-    @JmsListener(destination = "/positions", containerFactory = "jmsListenFactory")
-    public void receiveMessage(IposPosition pos) {
-        LOG.trace("Data integration get: " + pos);
-        // we can translate a class into a string using several methods: 1) `.toString()` 2) `JsonFormat` in `ProtoJsonMap`
-        String jsonPos = ProtoJsonMap.toJson(pos);
-        if (jsonPos != null) {
-            this.mqttService.publish("test51/subscribe/positions", jsonPos, 0, false);
-        }
-    }
-}
diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java
new file mode 100644
index 0000000000000000000000000000000000000000..26180e5a8710a7fa0f2cbe5511a7573de88f95e4
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java
@@ -0,0 +1,205 @@
+package ipos.project.DataModellntegration.SimpleSceneIntegration;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.SimpleSceneIntegration.api.MqttRequestHandler;
+import ipos.project.DataModellntegration.SimpleSceneIntegration.service.SimpleSceneTransformer;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl;
+import ipos.project.UseCaseController.Administration;
+import ipos.project.devkit.utility.OtherUtility;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class SimpleSceneIntegration {
+    // private static final Logger LOG = LoggerFactory.getLogger(SimpleSceneIntegration.class);
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    @Autowired
+    public SimpleSceneIntegration(ExternalPubServiceImpl mqttService_){
+        mqttService = mqttService_;
+    }
+
+    //@Autowired
+    public static ExternalPubServiceImpl mqttService;
+
+    public static void init(){
+        Administration.initialize();
+    }
+
+    public static void init(String path_to_init_data_file){
+        Administration.initialize(); // clears WorldModel
+        handleMessageFile(path_to_init_data_file);
+    }
+
+    public static void handleMessageFile(String path_to_message_file) {
+        File initFile = new File(path_to_message_file);
+        try {
+            for (String line : readLines(initFile)) {
+                SimpleScene.IposConfigWrapper iposConfigWrapper = ProtoJsonMap.fromJson(line, SimpleScene.IposConfigWrapper.class);
+                MqttRequestHandler.handleConfigWrapper(iposConfigWrapper);
+            }
+        }catch (InvalidProtocolBufferException e) {
+            LOG.error("Error trying to read JSON into protobuf-objects: ");
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * As opposed to the Stream<String>-approach using this approach reads the lines in order
+     * @param initFile
+     * @return
+     */
+    private static List<String> readLines(File initFile) {
+        List<String> lines = new ArrayList<>();
+        try(BufferedReader br = new BufferedReader(new FileReader(initFile))) { // br is automatically closed at the end of try-scope
+            for (String line; (line = br.readLine()) != null; ){
+                lines.add(line);
+            }
+        } catch (IOException e) {
+            LOG.error("Error while reading the text file: ");
+            e.printStackTrace();
+        }
+        return lines;
+    }
+
+    /*
+    @JmsListener(destination = "/positions", containerFactory = "jmsListenFactory")
+    public static void receiveMessage(IposPosition pos) {
+        LOG.trace("Data integration get: " + pos);
+        // we can translate a class into a string using several methods: 1) `.toString()` 2) `JsonFormat` in `ProtoJsonMap`
+        String jsonPos = ProtoJsonMap.toJson(pos);
+        if (jsonPos != null) {
+            this.mqttService.publish("test51/subscribe/positions", jsonPos, 0, false);
+        }
+    }*/
+
+    public static void receiveMessage(DataStorageQueryResponse dsQueryResponse, String trackingTaskId, String serializationType){
+        SimpleScene.IposQueryResponse queryResponse_proto = SimpleSceneTransformer.queryResp_Internal2SScene(dsQueryResponse, trackingTaskId);
+        MqttMessage mqttMessage = mqttService.createMqttMsg(queryResponse_proto, 0, false);
+        LOG.info("INDFRO: Publishing DataStorageQueryResponse on topic " + trackingTaskId + ": " + ProtoJsonMap.toJson(queryResponse_proto) + "; serializationType: " + serializationType);
+        OtherUtility.publishRespectingSerializationType(trackingTaskId, serializationType, queryResponse_proto);
+    }
+
+    public static void receiveMessage(PositionEvent positionEvent, String monitoringTaskId, String notificationType, String serializationType) {
+        //String jsonPos = ProtoJsonMap.toJson(positionEvent); // we can translate a class into a string using several methods: 1) `.toString()` 2) `JsonFormat` in `ProtoJsonMap`
+        if (positionEvent != null) {
+
+            // verwenden: DataServices.create-Methoden verwenden. Für ZoneDeskriptoren neue create-Funktionen schreiben
+            // PositionEvent posEvent_copy = duplicatePositionEvent(positionEvent);
+            // scale_position_frontend_app(posEvent_copy, 15);
+            SimpleScene.IposPositionEvent posEvent_proto = SimpleSceneTransformer.posEvent_internal2Proto(positionEvent, notificationType);
+            SimpleScene.IposMonitoringWrapper iposMonitoringWrapper = wrapIntoMonitoringWrapper(posEvent_proto);
+            logging_sdf(monitoringTaskId, serializationType, posEvent_proto);
+            logging_indfro(positionEvent, monitoringTaskId, serializationType);
+            logging_op(positionEvent, monitoringTaskId, serializationType);
+            OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iposMonitoringWrapper);
+
+        }else{
+            LOG.warn("Warning: SimpleScene: Received empty PositionEvent");
+        }
+    }
+
+    public static void receiveMessage(IposMsgRcvEvent iposMsgRcvEvent, String monitoringTaskId, String serializationType){
+        if (iposMsgRcvEvent != null){
+            SimpleScene.IposMsgRcvEvent iposMsgRcvEvent_proto = SimpleSceneTransformer.iposMsgRcvEvent_internal2proto(iposMsgRcvEvent);
+            SimpleScene.IposMonitoringWrapper iposMonitoringWrapper_proto = wrapIntoMonitoringWrapper(iposMsgRcvEvent_proto);
+            OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iposMonitoringWrapper_proto);
+        }else{
+            LOG.warn("Warning: SimpleScene: Received empty IposMsgRcvEvent");
+        }
+    }
+
+    private static SimpleScene.IposMonitoringWrapper wrapIntoMonitoringWrapper(SimpleScene.IposPositionEvent posEvent_proto) {
+        SimpleScene.IposMonitoringWrapper.Builder iposMonitoringWrapper_proto = SimpleScene.IposMonitoringWrapper.newBuilder();
+        iposMonitoringWrapper_proto.addIposPositionEvents(posEvent_proto);
+        return iposMonitoringWrapper_proto.build();
+    }
+
+    private static SimpleScene.IposMonitoringWrapper wrapIntoMonitoringWrapper(SimpleScene.IposMsgRcvEvent iposMsg) {
+        SimpleScene.IposMonitoringWrapper.Builder iposMonitoringWrapper_proto = SimpleScene.IposMonitoringWrapper.newBuilder();
+        iposMonitoringWrapper_proto.addIposMsgRcvEvents(iposMsg);
+        return iposMonitoringWrapper_proto.build();
+    }
+
+    private static void logging_op(PositionEvent positionEvent, String monitoringTaskId, String serializationType) {
+        LOG.info("OP: Publishing PositionEvent on topic " + monitoringTaskId + ": ZoneDescriptors:" + logZoneDescr(positionEvent.getZonedescriptors()) + "; serializationType: " + serializationType);
+        LOG.info("OP:");
+    }
+
+    private static PositionEvent duplicatePositionEvent(PositionEvent positionEvent) {
+        PositionEventImpl posEvent_copy = (PositionEventImpl) positionEvent;
+        ObjectMapper objectMapper = new ObjectMapper();
+        try {
+            posEvent_copy = objectMapper.readValue(objectMapper.writeValueAsString(positionEvent), PositionEventImpl.class);
+        } catch (JsonProcessingException e) {
+            LOG.warn("could not duplicate PositionEvent");
+            e.printStackTrace();
+        }
+        return posEvent_copy;
+    }
+
+    private static void logging_indfro(PositionEvent positionEvent, String monitoringTaskId, String serializationType) {
+        LOG.info("INDFRO: Publishing PositionEvent on topic " + monitoringTaskId + ": ZoneDescriptors:" + logZoneDescr(positionEvent.getZonedescriptors()) + "; serializationType: " + serializationType);
+    }
+
+    private static String logZoneDescr(EList<ZoneDescriptor> zonedescriptors) {
+        String logString = "";
+        for (ZoneDescriptor zoneDescriptor : zonedescriptors){
+            logString += "zoneId: " + zoneDescriptor.getZoneId() + "; ";
+            logString += "notificationType: " + zoneDescriptor.getNotificationType() + "    ";
+        }
+        logString += "_______";
+        return logString;
+    }
+
+    private static PositionEvent scale_position_frontend_app(PositionEvent internalPositionEvent, int factor) {
+        Point3D point = (Point3D) internalPositionEvent.getPlacing().getPosition().getPoint();
+        point.setX(factor*point.getX());
+        point.setY(factor*point.getY());
+        point.setZ(factor*point.getZ());
+        return internalPositionEvent;
+    }
+
+    private static void logging_sdf(String monitoringTaskId, String serializationType, SimpleScene.IposPositionEvent posEvent_proto) {
+        for (SimpleScene.IposObject obj : posEvent_proto.getObjectsList()){
+            String agentId = obj.getId();
+            String sensorId = obj.getSensorId();
+            String sensorType = obj.getSensorType();
+            String timestamp = obj.getLastPosUpdate();
+            String topic = monitoringTaskId;
+            float accuracy = obj.getPosition().getAccuracy();
+            String positionString = toPositionString(obj.getPosition());
+            LOG.info("SDF-PUB: Publishing: sensorType: " + sensorType + "; timestamp: " + timestamp + "; accuracy: " + accuracy + "position: " + positionString + "; sensorId: " + sensorId + "; agentId: " + agentId + "; topic: " + monitoringTaskId + "; serializationType: " + serializationType);
+            LOG.info("SDF: ");
+            LOG.info("SDF: ");
+            LOG.info("SDF: ");
+        }
+    }
+
+    private static String toPositionString(SimpleScene.IposPosition position) {
+        String posString = "(";
+        posString += "x: " + position.getPoint().getX();
+        posString += "y: " + position.getPoint().getY();
+        posString += "z: " + position.getPoint().getZ();
+        posString += ")";
+        return posString;
+    }
+
+}
diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/api/MqttRequestHandler.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/api/MqttRequestHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..43a83e74d2525cdf5bd4e5000cf011ac352b529e
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/api/MqttRequestHandler.java
@@ -0,0 +1,118 @@
+package ipos.project.DataModellntegration.SimpleSceneIntegration.api;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.SimpleScene;
+import ipos.models.SimpleScene.IposMonitoringRequest;
+import ipos.project.DataModellntegration.SimpleSceneIntegration.service.SimpleSceneTransformer;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+import ipos.project.UseCaseController.Administration;
+import ipos.project.UseCaseController.PositionMonitoring;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jms.core.JmsTemplate;
+
+import java.util.List;
+
+
+// subscribe to the topic. It's example
+@MqttListener(PositionMonitoring.TOPIC_ConfigWrapper)
+public class MqttRequestHandler implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    JmsTemplate jmsTemplate;
+
+    @Autowired
+    public MqttRequestHandler(JmsTemplate jmsTemplate) {
+        this.jmsTemplate = jmsTemplate;
+    }
+
+    // method that handle new message from the topic
+    public void handle(MqttMessage message) {
+        try {
+            // TODO: Zwischen JSON und Protobuf unterscheiden können
+            SimpleScene.IposConfigWrapper iposConfigWrapper = ProtoJsonMap.fromJson(message.toString(), SimpleScene.IposConfigWrapper.class);
+            // IposMonitoringRequest monReqProto = IposMonitoringRequest.parseFrom(message.getPayload());
+            handleConfigWrapper(iposConfigWrapper);
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static void handleConfigWrapper(SimpleScene.IposConfigWrapper iposConfigWrapper) {
+        LOG.info("IposConfigWrapper received: \n"
+                + iposConfigWrapper.toString());
+        // Annahme: iposConfigWrapper enthält für leere Felder leere Listen und nicht null
+        processMonitoringRequests(iposConfigWrapper);
+        processRefSystems(iposConfigWrapper.getRefSystemsList());
+        processFrameConfigs(iposConfigWrapper.getFramesList()); // should be done not before refSystem-processing, as it might require one of the processed refSystems
+        processObjectConfigs(iposConfigWrapper.getObjectConfigsList());
+        processPois(iposConfigWrapper.getPoisList());
+        processQueryRequest(iposConfigWrapper.getQueryRequestsList());
+
+        // this.jmsTemplate.convertAndSend("/request123", monReqInternal); // submit request to the internal broker
+    }
+
+    private static void processQueryRequest(List<SimpleScene.IposQueryRequest> queryRequestsList) {
+        for (SimpleScene.IposQueryRequest proto_qReq : queryRequestsList){
+            DataStorageQueryRequest internal_qReq = SimpleSceneTransformer.queryReq_SScene2Internal(proto_qReq);
+            LOG.info("INDFRO:");
+            LOG.info("INDFRO: Received QueryRequest for trackingTaskId " + internal_qReq.getTrackingTaskId());
+            PositionMonitoring.receiveMessage(internal_qReq);
+        }
+    }
+
+    /*
+    private SimpleScene.IposConfigWrapper replaceNullByEmptyList(SimpleScene.IposConfigWrapper configWrapper) {
+        SimpleScene.IposConfigWrapper.Builder configWrapper_NoNull = SimpleScene.IposConfigWrapper.newBuilder();
+        configWrapper_NoNull.add;
+    }
+    */
+
+    private static void processPois(List<SimpleScene.POI> poisList) {
+        for (SimpleScene.POI poi : poisList){
+            POI poi_internal = SimpleSceneTransformer.poi_SScene2Internal(poi);
+            Administration.handlePoi(poi_internal);
+        }
+    }
+
+    private static void processRefSystems(List<SimpleScene.RefSystem> refSystemsList) {
+        for (SimpleScene.RefSystem refSystem : refSystemsList){
+            ReferenceSystem refSystem_internal = SimpleSceneTransformer.refSystem_SScene2Internal(refSystem);
+            Administration.handleRefSystem(refSystem_internal);
+        }
+    }
+
+    private static void processObjectConfigs(List<SimpleScene.IposObjectConfig> objectConfigsList) {
+        for( SimpleScene.IposObjectConfig objConfig : objectConfigsList){
+            Agent agent = SimpleSceneTransformer.agent_SScene2Internal(objConfig);
+            Administration.handleAgent(agent);
+        }
+    }
+
+    private static void processFrameConfigs(List<SimpleScene.IposFrameConfig> frames){
+        /*
+        if (null == frames){
+            LOG.info("ConfigWrapper-message contains no Frame-definitions");
+            return;
+        }
+        */
+        for( SimpleScene.IposFrameConfig frame : frames){
+            Zone zone = SimpleSceneTransformer.zone_SScene2Internal(frame);
+            Administration.handleZone(zone);
+        }
+    }
+
+    private static void processMonitoringRequests(SimpleScene.IposConfigWrapper iposConfigWrapper) {
+        for (IposMonitoringRequest monReq : iposConfigWrapper.getMonitoringRequestsList()){
+            MonitoringRequest monReqInternal = SimpleSceneTransformer.monReq_SScene2Internal(monReq);
+            PositionMonitoring.receiveMessage(monReqInternal);
+            // TODO: send request via JMS to MonitoringController
+        }
+    }
+}
diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/ExternalPubService.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/ExternalPubService.java
new file mode 100644
index 0000000000000000000000000000000000000000..69cb4a98491f5cb52180eb72ca47c27e415cef60
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/ExternalPubService.java
@@ -0,0 +1,9 @@
+package ipos.project.DataModellntegration.SimpleSceneIntegration.service;
+
+import com.google.protobuf.AbstractMessageLite;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+public interface ExternalPubService {
+    void publish(final String topic, final String msg , int qos, boolean retained);
+    MqttMessage createMqttMsg(AbstractMessageLite message, int qos, boolean retained);
+}
diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java
new file mode 100644
index 0000000000000000000000000000000000000000..dcf82d8825fecc66c3cecba46b04c36317b0833b
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java
@@ -0,0 +1,301 @@
+package ipos.project.DataModellntegration.SimpleSceneIntegration.service;
+
+import com.google.protobuf.ByteString;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import com.google.protobuf.ProtocolStringList;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+import ipos.project.UseCaseController.PositionMonitoring;
+import ipos.project.devkit.utility.OtherUtility;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.emf.common.util.EList;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class SimpleSceneTransformer {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    private static IPosDevKitFactory devKitFactory = IPosDevKitFactory.eINSTANCE;
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+
+    public static MonitoringRequest monReq_SScene2Internal(SimpleScene.IposMonitoringRequest monReqProto){
+        MonitoringRequest monReqInt = devKitFactory.createMonitoringRequest();
+        monReqInt.setFrameIds(new LinkedList<>());
+        monReqInt.getFrameIds().addAll(monReqProto.getFrameIdsList());
+        monReqInt.setDelta(monReqProto.getDelta());
+        monReqInt.setUpdateFrequency(monReqProto.getUpdateFrequency());
+        monReqInt.setType(toJavaStringList(monReqProto.getTypeList()));
+        monReqInt.setId(toJavaStringList(monReqProto.getIdList()));
+        monReqInt.setFusionStrategy(monReqProto.getFusionStrategy());
+        monReqInt.setExitNotification(monReqProto.getExitNotification());
+        monReqInt.setProperties(monReqProto.getPropertiesList());
+        monReqInt.setMonitoringTaskId(monReqProto.getMonitoringTaskId());
+        monReqInt.setRefSystemId(monReqProto.getRefSystemId());
+        monReqInt.setRequestorProtocol(monReqProto.getRequestorProtocol());
+        monReqInt.setSerializationType(monReqProto.getSerializationType());
+        return monReqInt;
+    }
+
+    private static List<String> toJavaStringList(ProtocolStringList protoList){
+        List<String> javaList = new ArrayList<>();
+        for(int i = 0; i < protoList.size(); i++ ){
+            javaList.add(protoList.get(i));
+        }
+        return javaList;
+    }
+
+    public static SimpleScene.IposMonitoringRequest monReq_Internal2SScene(){
+        return null;
+    }
+
+    public static SimpleScene.IposPositionEvent posEvent_internal2Proto(PositionEvent internalPosEvent, String notificationType){
+        SimpleScene.IposObject.Builder protoIposObject = constructProtoIposObjectFromPosEvent(internalPosEvent);
+        if (protoIposObject == null) return null;
+        SimpleScene.IposPositionEvent.Builder protoIposPosEvent = transformIntoProtoIposPosEvent(notificationType, protoIposObject);
+        return protoIposPosEvent.build();
+    }
+
+    private static SimpleScene.IposObject.Builder constructProtoIposObjectFromPosEvent(PositionEvent internalPosEvent) {
+        LocalizableObject lObject = PositionMonitoring.getLObjectByIdOrNull(internalPosEvent.getLObjectId());
+        if (null == lObject || null == lObject.getAgent()) {
+            LOG.error("Internal-PositionEvent could not be transformed into protobuf-format. " +
+                    "No LocalizableObject with the provided sensor-id could be found, or no agent " +
+                    "is associated to the LocalizableObject that has been found.");
+            return null;
+        }
+        SimpleScene.IposPoint3D.Builder protoPoint3D = transformIntoProtoPoint3D(internalPosEvent);
+        SimpleScene.IposPosition.Builder protoIposPosition = transformIntoProtoIposPosition(internalPosEvent, protoPoint3D);
+        SimpleScene.IposSimpleOrientation.Builder protoOrientation = transformIntoProtoOrientation(internalPosEvent);
+        List<SimpleScene.IposZoneDescriptor.Builder> zoneDescriptors = transformIntoProtoZoneDescriptorList(internalPosEvent);
+        SimpleScene.IposObject.Builder protoIposObject = transformIntoProtoObject(internalPosEvent, lObject, protoIposPosition, protoOrientation, zoneDescriptors);
+        return protoIposObject;
+    }
+
+    private static List<SimpleScene.IposZoneDescriptor.Builder> transformIntoProtoZoneDescriptorList(PositionEvent internalPosEvent) {
+        return transformIntoProtoZoneDescriptorList(internalPosEvent.getZonedescriptors());
+    }
+
+    private static List<SimpleScene.IposZoneDescriptor.Builder> transformIntoProtoZoneDescriptorList(EList<ZoneDescriptor> zoneDescriptors) {
+        List<SimpleScene.IposZoneDescriptor.Builder> zoneDescriptorList = new LinkedList<>();
+        for ( ZoneDescriptor zoneDescriptor_internal : zoneDescriptors){
+            SimpleScene.IposZoneDescriptor.Builder protoIposZoneDescriptor = SimpleScene.IposZoneDescriptor.newBuilder();
+            protoIposZoneDescriptor.setZoneId(zoneDescriptor_internal.getZoneId());
+            protoIposZoneDescriptor.setNotificationType(zoneDescriptor_internal.getNotificationType());
+            zoneDescriptorList.add(protoIposZoneDescriptor);
+        }
+        return zoneDescriptorList;
+    }
+
+    private static SimpleScene.IposPositionEvent.Builder transformIntoProtoIposPosEvent(String notificationType, SimpleScene.IposObject.Builder protoIposObject) {
+        SimpleScene.IposPositionEvent.Builder protoIposPosEvent = SimpleScene.IposPositionEvent.newBuilder();
+        /*if (!PositionMonitoring.UNDEFINED_TYPE.equals(notificationType)) { // if undefined, protobuf-object will be created without explicit notificationtype-information
+            protoIposPosEvent.setType(notificationType);
+        }*/
+        protoIposPosEvent.addObjects(protoIposObject);
+        return protoIposPosEvent;
+    }
+
+    private static SimpleScene.IposObject.Builder transformIntoProtoObject(PositionEvent internalPosEvent, LocalizableObject lObject, SimpleScene.IposPosition.Builder protoIposPosition, SimpleScene.IposSimpleOrientation.Builder protoOrientation, List<SimpleScene.IposZoneDescriptor.Builder> zoneDescriptors) {
+        SimpleScene.IposObject.Builder protoIposObject = SimpleScene.IposObject.newBuilder();
+        protoIposObject.setSensorId(lObject.getId()).setSensorType(lObject.getSensorType()).setId(lObject.getAgent().getId()).setType(lObject.getAgent().getAgentType()).setOrientation(protoOrientation).setPosition(protoIposPosition).setLastPosUpdate(internalPosEvent.getTimeStamp());
+        for (SimpleScene.IposZoneDescriptor.Builder zoneDescriptor : zoneDescriptors){
+            protoIposObject.addZoneDescriptors(zoneDescriptor); //   getZoneDescriptorsBuilderList().addAll(zoneDescriptors);
+        }
+        return protoIposObject;
+    }
+
+    private static SimpleScene.IposSimpleOrientation.Builder transformIntoProtoOrientation(PositionEvent internalPosEvent) {
+        return transformIntoProtoOrientation((Quaternion) internalPosEvent.getPlacing().getOrientation());
+    }
+
+    private static SimpleScene.IposSimpleOrientation.Builder transformIntoProtoOrientation(Quaternion internalOrientation) {
+        SimpleScene.IposSimpleOrientation.Builder protoOrientation = SimpleScene.IposSimpleOrientation.newBuilder();
+        protoOrientation.setX(internalOrientation.getX()).setY(internalOrientation.getY()).setZ(internalOrientation.getZ()).setW(internalOrientation.getW());
+        return protoOrientation;
+    }
+
+    private static SimpleScene.IposPosition.Builder transformIntoProtoIposPosition(PositionEvent internalPosEvent, SimpleScene.IposPoint3D.Builder protoPoint3D) {
+        return transformIntoProtoIposPosition(internalPosEvent.getPlacing().getPosition(), protoPoint3D);
+    }
+
+    private static SimpleScene.IposPosition.Builder transformIntoProtoIposPosition(Position internalPos, SimpleScene.IposPoint3D.Builder protoPoint3D) {
+        float internalAccuracy = ((Gaussian) internalPos.getAccuracy()).getConfidenceInterval();
+        String internalRefSystemId = internalPos.getReferenceSystem().getId();
+        SimpleScene.IposPosition.Builder protoIposPosition = SimpleScene.IposPosition.newBuilder();
+        protoIposPosition.setAccuracy(internalAccuracy).setRefSystemId(internalRefSystemId).setPoint(protoPoint3D);
+        return protoIposPosition;
+    }
+
+    private static SimpleScene.IposPoint3D.Builder transformIntoProtoPoint3D(PositionEvent internalPosEvent) {
+        return transformIntoProtoPoint3D(internalPosEvent.getPlacing().getPosition());
+    }
+
+    private static SimpleScene.IposPoint3D.Builder transformIntoProtoPoint3D(Position internalPos) {
+        SimpleScene.IposPoint3D.Builder protoPoint3D = SimpleScene.IposPoint3D.newBuilder();
+        Point3D internalPoint3D = (Point3D) internalPos.getPoint();
+        protoPoint3D.setX(internalPoint3D.getX()).setY(internalPoint3D.getY()).setZ(internalPoint3D.getZ());
+        return protoPoint3D;
+    }
+
+    public static Zone zone_SScene2Internal(SimpleScene.IposFrameConfig frame) {
+        Zone zone = modelFactory.createZone();
+        zone.setId(frame.getId());
+        zone.setName(frame.getId());
+        for (SimpleScene.IposSpace space_proto : frame.getSpaceList()){
+            Space space = space_SScene2Internal(space_proto);
+            zone.getSpace().add(space);
+        }
+        return zone;
+    }
+
+    private static Space space_SScene2Internal(SimpleScene.IposSpace space_proto) {
+        Space space = modelFactory.createSpace();
+        space.setX(space_proto.getX());
+        space.setY(space_proto.getY());
+        space.setZ(space_proto.getZ());
+        space.setCentrePoint(placing_SScene2Internal(space_proto.getPosition(),space_proto.getOrientation()));
+        return space;
+    }
+
+    private static Placing placing_SScene2Internal(SimpleScene.IposPosition position, SimpleScene.IposSimpleOrientation orientation) {
+        Placing placing = modelFactory.createPlacing();
+        placing.setPosition(position_SScene2Internal(position));
+        placing.setOrientation(orientation_SScene2Internal(orientation));
+        return placing;
+    }
+
+    private static Orientation orientation_SScene2Internal(SimpleScene.IposSimpleOrientation orientation_proto) {
+    Quaternion orientation = modelFactory.createQuaternion();
+    orientation.setX(orientation_proto.getX());
+    orientation.setY(orientation_proto.getY());
+    orientation.setZ(orientation_proto.getZ());
+    orientation.setW(orientation_proto.getW());
+    return orientation;
+    }
+
+    private static Position position_SScene2Internal(SimpleScene.IposPosition position_proto) {
+        Position position = modelFactory.createPosition();
+        position.setReferenceSystem(PositionMonitoring.getReferenceSystemByIdOrNull(position_proto.getRefSystemId()));
+        position.setPoint(point_SScene2Internal(position_proto.getPoint()));
+        position.setAccuracy(accuracy_SScene2Internal(position_proto.getAccuracy()));
+        return position;
+    }
+
+    private static Accuracy accuracy_SScene2Internal(float accuracy_proto) {
+        Gaussian accuracy = modelFactory.createGaussian();
+        accuracy.setConfidenceInterval(accuracy_proto);
+        return accuracy;
+    }
+
+    private static Point point_SScene2Internal(SimpleScene.IposPoint3D point_proto) {
+        Point3D point = modelFactory.createPoint3D();
+        point.setX(point_proto.getX());
+        point.setY(point_proto.getY());
+        point.setZ(point_proto.getZ());
+        return point;
+    }
+
+    /**
+     * It is the job of this function to create Agent- and LocalizableObject-objects.
+     * If is not the job of this function to checker whether agent/lobject-Objects
+     * do already exist for the respective ids.
+     * @param objConfig
+     * @return
+     */
+    public static Agent agent_SScene2Internal(SimpleScene.IposObjectConfig objConfig) {
+        Agent agent = modelFactory.createAgent();
+        agent.setAgentType(objConfig.getAgentType());
+        agent.setId(objConfig.getAgentId());
+        LocalizableObject lObject = modelFactory.createLocalizableObject();
+        lObject.setSensorType(objConfig.getSensorType());
+        lObject.setId(objConfig.getSensorId());
+        lObject.setAgent(agent);
+        agent.getLObject().add(lObject);
+        return agent;
+    }
+
+    public static ReferenceSystem refSystem_SScene2Internal(SimpleScene.RefSystem refSystem_proto) {
+        ReferenceSystem refSystem = modelFactory.createReferenceSystem();
+        refSystem.setId(refSystem_proto.getId());
+        refSystem.setName(refSystem_proto.getId());
+        if (null != refSystem_proto.getPosition() && null != refSystem_proto.getOrientation()) {
+            refSystem.setOrigin(placing_SScene2Internal(refSystem_proto.getPosition(), refSystem_proto.getOrientation()));
+        }
+        return refSystem;
+    }
+
+    public static POI poi_SScene2Internal(SimpleScene.POI poi_proto) {
+        POI poi = modelFactory.createPOI();
+        poi.setId(poi_proto.getId());
+        poi.setDescription(poi_proto.getDescription());
+        poi.setData(poi_proto.getDataMap());
+        poi.setPlacing(placing_SScene2Internal(poi_proto.getPosition(), poi_proto.getOrientation()));
+        return poi;
+    }
+
+    public static DataStorageQueryRequest queryReq_SScene2Internal(SimpleScene.IposQueryRequest proto_qReq) {
+        DataStorageQueryRequest internal_queryReq = devKitFactory.createDataStorageQueryRequest();
+        internal_queryReq.setTrackingTaskId(proto_qReq.getTrackingTaskId());
+        return internal_queryReq;
+    }
+
+    public static SimpleScene.IposQueryResponse queryResp_Internal2SScene(DataStorageQueryResponse dsQueryResponse, String trackingTaskId) {
+        SimpleScene.IposQueryResponse.Builder iposQueryResponse = SimpleScene.IposQueryResponse.newBuilder();
+        iposQueryResponse.setTrackingTaskId(dsQueryResponse.getTrackingTaskId());
+        List<SimpleScene.IposObject.Builder> iposObjects = transformIntoProtoObjectList(dsQueryResponse.getPositionEvents());
+        for ( SimpleScene.IposObject.Builder iposObject : iposObjects){
+            iposQueryResponse.addObjects(iposObject);
+        }
+        return iposQueryResponse.build();
+
+    }
+
+    private static List<SimpleScene.IposObject.Builder> transformIntoProtoObjectList(EList<PositionEvent> positionEvents) {
+        List<SimpleScene.IposObject.Builder> iposObjectList = new LinkedList<>();
+        for (PositionEvent posEvent : positionEvents){
+            SimpleScene.IposObject.Builder protoIposObject = constructProtoIposObjectFromPosEvent(posEvent);
+            if (protoIposObject == null) continue;
+            iposObjectList.add(protoIposObject);
+        }
+        return iposObjectList;
+    }
+
+    public static SimpleScene.IposMsgRcvEvent iposMsgRcvEvent_internal2proto(IposMsgRcvEvent iposMsgRcvEvent_internal) {
+        SimpleScene.IposMsgRcvEvent.Builder iposMsgRcvEvent_proto = SimpleScene.IposMsgRcvEvent.newBuilder();
+        iposMsgRcvEvent_proto.setProtocolName(iposMsgRcvEvent_internal.getProtocolName());
+        iposMsgRcvEvent_proto.setSerializedMsg(ByteString.copyFrom(iposMsgRcvEvent_internal.getSerializedMsg()));
+        iposMsgRcvEvent_proto.setAgentId(iposMsgRcvEvent_internal.getAgentId());
+        iposMsgRcvEvent_proto.setLastPosUpdate(Optional.ofNullable(iposMsgRcvEvent_internal.getLastPosUpdate()).orElse(""));
+        List<SimpleScene.Attribute> attributeList = iposMsgRcvEvent_internal.getExtractedAttributes().stream().map(SimpleSceneTransformer::toAttribute_proto).collect(Collectors.toList());
+        attributeList.stream().forEach(attribute -> iposMsgRcvEvent_proto.addExtractedAttributes(attribute));
+        // iposMsgRcvEvent_proto.getExtractedAttributesList().addAll(attributeList);
+        iposMsgRcvEvent_proto.setTimestamp(Optional.ofNullable(iposMsgRcvEvent_internal.getTimestamp()).orElse(""));
+        if (null != iposMsgRcvEvent_internal.getLastKnownPosition()) {
+            SimpleScene.IposPoint3D.Builder protoPoint3D = transformIntoProtoPoint3D(iposMsgRcvEvent_internal.getLastKnownPosition());
+            iposMsgRcvEvent_proto.setLastKnownPosition(transformIntoProtoIposPosition(iposMsgRcvEvent_internal.getLastKnownPosition(), protoPoint3D));
+        }
+        if (null != iposMsgRcvEvent_internal.getLastKnownOrientation()) iposMsgRcvEvent_proto.setLastKnownOrientation(transformIntoProtoOrientation((Quaternion) iposMsgRcvEvent_internal.getLastKnownOrientation()));
+        List<SimpleScene.IposZoneDescriptor> zoneDescriptors_proto = extractZoneDescriptors(iposMsgRcvEvent_internal);
+        zoneDescriptors_proto.stream().forEach(zoneDescriptor -> iposMsgRcvEvent_proto.addLastKnownZoneDescriptors(zoneDescriptor));
+        //iposMsgRcvEvent_proto.getLastKnownZoneDescriptorsList().addAll(extractZoneDescriptors(iposMsgRcvEvent_internal));
+        return iposMsgRcvEvent_proto.build();
+    }
+
+    private static List<SimpleScene.IposZoneDescriptor> extractZoneDescriptors(IposMsgRcvEvent iposMsgRcvEvent_internal) {
+        List<SimpleScene.IposZoneDescriptor.Builder> zoneDescriptorBuilders = transformIntoProtoZoneDescriptorList(iposMsgRcvEvent_internal.getLastKnownZonedescriptors());
+        List<SimpleScene.IposZoneDescriptor> zoneDescriptors = zoneDescriptorBuilders.stream().map(zoneDescriptorBuilder -> zoneDescriptorBuilder.build()).collect(Collectors.toList());
+        return zoneDescriptors;
+    }
+
+    private static SimpleScene.Attribute toAttribute_proto(HashMap<String, String> stringStringHashMap) {
+        SimpleScene.Attribute.Builder attribute_proto = SimpleScene.Attribute.newBuilder();
+        attribute_proto.setName(stringStringHashMap.get(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME));
+        attribute_proto.setType(stringStringHashMap.get(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE));
+        attribute_proto.setData(stringStringHashMap.get(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE));
+        return attribute_proto.build();
+    }
+
+}
diff --git a/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/VDA5050Processor.java b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/VDA5050Processor.java
new file mode 100644
index 0000000000000000000000000000000000000000..703e334e3d2b9b3eb77d8853539de979005e1270
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/VDA5050Processor.java
@@ -0,0 +1,44 @@
+package ipos.project.DataModellntegration.VDA5050Processor;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.GenericSensor;
+import ipos.models.VDA5050;
+import ipos.project.DataModellntegration.VDA5050Processor.api.MqttRequestHandler;
+import ipos.project.SensorValueIntegration.api.MqttPositionHandler;
+import ipos.project.devkit.utility.OtherUtility;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+
+import java.io.File;
+import java.util.Scanner;
+
+import static ipos.project.devkit.utility.OtherUtility.waitUntilUserRequestsReadingNextLine;
+
+public class VDA5050Processor {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    public static final String TOPIC_AGVSTATE = "VDA5050_AgvState";
+    public static final String PROTOCOL_NAME_VDA5050 = "VDA5050";
+    public static final String AGV_ID_CONNECTOR_CHARACTER = "-";
+    public static final Object TYPE_STRING = "string";
+    public static final String TYPE_FLOAT = "float";
+    public static final String TYPE_LIST_OF_INT = "listOfInt";
+    public static final CharSequence DELIMITER_CSV = ",";
+
+    public static void processTestData(String path_to_test_data_file){
+        File testDataFile = new File(path_to_test_data_file);
+        Scanner scanner = new Scanner(System.in);
+        try {
+            for (String line : OtherUtility.readLines(testDataFile)) {
+                VDA5050.AgvState agvState_proto = ProtoJsonMap.fromJson(line, VDA5050.AgvState.class);
+                OtherUtility.waitUntilUserRequestsReadingNextLine(scanner);
+                MqttRequestHandler.processAgvState(agvState_proto);
+            }
+        }catch (InvalidProtocolBufferException e) {
+            LOG.error("Error trying to read JSON into protobuf-objects: ");
+            e.printStackTrace();
+        }
+    }
+
+
+}
diff --git a/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f124e36152f04877cc9c4b228b79d07889a6b91
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java
@@ -0,0 +1,283 @@
+package ipos.project.DataModellntegration.VDA5050Processor.api;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.SimpleScene;
+import ipos.models.SimpleScene.IposMonitoringRequest;
+import ipos.models.VDA5050;
+import ipos.project.DataModellntegration.SimpleSceneIntegration.service.SimpleSceneTransformer;
+import ipos.project.DataModellntegration.VDA5050Processor.VDA5050Processor;
+import ipos.project.DataModellntegration.VDA5050Processor.service.VDA5050Transformer;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load;
+import ipos.project.Functionality.DataServices;
+import ipos.project.UseCaseController.Administration;
+import ipos.project.UseCaseController.PositionMonitoring;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.trans.IPos2protoTransformer;
+import ipos.project.devkit.utility.OtherUtility;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jms.core.JmsTemplate;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+// subscribe to the topic. It's example
+@MqttListener(VDA5050Processor.TOPIC_AGVSTATE)
+public class MqttRequestHandler implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    JmsTemplate jmsTemplate;
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+
+    @Autowired
+    public MqttRequestHandler(JmsTemplate jmsTemplate) {
+        this.jmsTemplate = jmsTemplate;
+    }
+
+    // method that handle new message from the topic
+    public void handle(MqttMessage message) {
+        try {
+            // TODO: Zwischen JSON und Protobuf unterscheiden können
+            //SimpleScene.IposConfigWrapper iposConfigWrapper = ProtoJsonMap.fromJson(message.toString(), SimpleScene.IposConfigWrapper.class);
+            VDA5050.AgvState agvState = ProtoJsonMap.fromJson(message.toString(), VDA5050.AgvState.class);
+            // VDA5050.AgvState agvState_proto = ProtoJsonMap.fromJson(line, VDA5050.AgvState.class);
+            // IposMonitoringRequest monReqProto = IposMonitoringRequest.parseFrom(message.getPayload());
+            processAgvState(agvState);
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        } catch (NullPointerException e){
+            LOG.info("VDA5050-message could not be read. " + e.getMessage());
+            e.printStackTrace();
+        }
+    }
+
+    public static void processAgvState(VDA5050.AgvState agvState_proto) {
+        LOG.info("VDA5050-AgvState message received: \n" + agvState_proto.toString());
+        AgvState agvState = VDA5050Transformer.agvState_proto2internal(agvState_proto);
+        MessageReceivedEvent messageReceivedEvent = extractMessageReceivedEventFromAgvState(agvState, ProtoJsonMap.toJson(agvState_proto));
+        LOG.info("VDA5050: Corresponding MessageReceivedEvent: " + messageReceivedEvent.toString());
+        attemptToHandleAsPositionEvent(agvState);
+        attemptToEvaluateLastNodeId(agvState, messageReceivedEvent.getAgentId());
+        PositionMonitoring.receiveMessage(messageReceivedEvent);
+        // this.jmsTemplate.convertAndSend("/request123", monReqInternal); // submit request to the internal broker
+    }
+
+    private static void attemptToEvaluateLastNodeId(AgvState agvState, String agentId) {
+        // we prefer current positions over old positions communicated over lastNodeIds
+        boolean noCurrentPositionAvailable = !containsValidAgvPosition(agvState);
+        boolean lastNodeIdIsAvailable = null != agvState.getLastNodeId();
+        if( noCurrentPositionAvailable && lastNodeIdIsAvailable){
+            try {
+                String lastNodeId = agvState.getLastNodeId();
+                POI poi = Optional.ofNullable(DataServices.getPoiByIdOrNull(lastNodeId)).orElseThrow(() -> new NullPointerException("Message contained unknown lastNodeId: " + agvState.getLastNodeId()));
+                LocalizableObject lObject = Optional.ofNullable(DataServices.getLObjectByIdOrNull(agentId)).orElseThrow(() -> new NullPointerException("Message was sent on behalf of an unknown agentId: " + agentId));
+                if (null == lObject.getLastPosUpdate()){ // assumption: if lastPosUpdate is unset, there is no position information that would be more current than the VDA5050-lastNodeId
+                    lObject.setCurrentPlacing(poi.getPlacing());
+                    LOG.info("VDA5050: currentPlacing of localizable object " + lObject.getId() + " has been updated.");
+                    return;
+                }
+            }catch(NullPointerException e){
+                LOG.info("LastNodeId of VDA5050-message (AgvState) could not be processed. " + e.getMessage());
+                return;
+            }
+        }
+    }
+
+    private static void attemptToHandleAsPositionEvent(AgvState agvState) {
+        if(containsValidAgvPosition(agvState)){
+            try {
+                PositionEvent posEvent = extractPositionEvent(agvState);
+                PositionMonitoring.receiveMessage(posEvent);
+            }catch (NullPointerException e){
+                LOG.info("Received message did not receive sufficient information to be handled as PositionEvent. " + e.getMessage());
+            }
+        }
+    }
+
+    private static PositionEvent extractPositionEvent(AgvState agvState) {
+        PositionEvent posEvent = modelFactory.createPositionEvent();
+        Objects.requireNonNull(agvState.getManufacturer(), "Message missed a required information: manufacturer");
+        Objects.requireNonNull(agvState.getSerialNumber(), "Message missed a required information: serialNumber");
+        String extractedRefSystem = Optional.ofNullable(agvState.getAgvposition().getMapId()).orElse(PositionMonitoring.SRS_ID_ROOT);
+        Objects.requireNonNull(DataServices.getReferenceSystemByIdOrNull(extractedRefSystem), "Message contained a position that is associated an unknown reference system: " + extractedRefSystem);
+        posEvent.setTimeStamp(Optional.ofNullable(agvState.getTimeStamp()).orElse(""));
+        posEvent.setLObjectId(agvState.getManufacturer() + VDA5050Processor.AGV_ID_CONNECTOR_CHARACTER + agvState.getSerialNumber());
+        posEvent.setPlacing(
+            IPos2protoTransformer.createPlacing(
+                    IPos2protoTransformer.createPosition(
+                            IPos2protoTransformer.createPoint3D(
+                                    agvState.getAgvposition().getX(),
+                                    agvState.getAgvposition().getY(),
+                                    0),
+                            -1.0f,
+                            DataServices.getReferenceSystemByIdOrNull(extractedRefSystem)),
+                    IPos2protoTransformer.createOrientation(
+                            0,
+                            0,
+                            0,
+                            0
+                    )
+            )
+        );
+        return posEvent;
+    }
+
+    private static boolean containsValidAgvPosition(AgvState agvState) {
+        return null != agvState.getAgvposition();
+    }
+
+    private static MessageReceivedEvent extractMessageReceivedEventFromAgvState(AgvState agvState, String serializedMsg) {
+        Objects.requireNonNull(agvState.getManufacturer(), "Message missed a required information: manufacturer");
+        Objects.requireNonNull(agvState.getSerialNumber(), "Message missed a required information: serialNumber");
+        MessageReceivedEvent messageReceivedEvent = modelFactory.createMessageReceivedEvent();
+        messageReceivedEvent.setProtocolName(VDA5050Processor.PROTOCOL_NAME_VDA5050);
+        messageReceivedEvent.setSerializedMsg(serializedMsg.getBytes());
+        messageReceivedEvent.setAgentId(agvState.getManufacturer() + VDA5050Processor.AGV_ID_CONNECTOR_CHARACTER + agvState.getSerialNumber());
+        messageReceivedEvent.setExtractedAttributes(extractAgvStateAttributes(agvState));
+        messageReceivedEvent.setTimestamp(Optional.ofNullable(agvState.getTimeStamp()).orElse(""));
+        return messageReceivedEvent;
+    }
+
+    private static LinkedList<HashMap<String, String>> extractAgvStateAttributes(AgvState agvState) {
+        LinkedList<HashMap<String, String>> extractedAttributes = new LinkedList<>();
+        extractAgvStateBatteryChargeLevel(agvState, extractedAttributes);
+        extractAgvStateLoads(agvState, extractedAttributes);
+        extractAgvStateErrors(agvState, extractedAttributes);
+        extractAgvStateTheta(agvState, extractedAttributes);
+        extractAgvStateLastNodeId(agvState, extractedAttributes);
+        return extractedAttributes;
+    }
+
+    private static void extractAgvStateLastNodeId(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) {
+        if(null == agvState.getLastNodeId() || agvState.getLastNodeId().equals("")){
+            return;
+        }
+        HashMap agvStateLastNodeId = new HashMap<String, String>();
+        agvStateLastNodeId.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "lastNodeId");
+        agvStateLastNodeId.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_STRING);
+        agvStateLastNodeId.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, agvState.getLastNodeId());
+        extractedAttributes.add(agvStateLastNodeId);
+    }
+
+    private static void extractAgvStateErrors(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) {
+        if(null == agvState.getErrors() || agvState.getErrors().size()==0){
+            return;
+        }
+        HashMap agvStateErrors = new HashMap<String, String>();
+        agvStateErrors.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "errors");
+        agvStateErrors.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_LIST_OF_INT);
+        List<String> errorIdsAsStringList = agvState.getErrors().stream().map(MqttRequestHandler::extractErrorId).collect(Collectors.toList());
+        agvStateErrors.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, String.join(VDA5050Processor.DELIMITER_CSV, errorIdsAsStringList));
+        extractedAttributes.add(agvStateErrors);
+    }
+
+    private static void extractAgvStateLoads(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) {
+        if(null == agvState.getLoads() || agvState.getLoads().size() == 0){
+            return;
+        }
+        HashMap agvStateLoads = new HashMap<String, String>();
+        agvStateLoads.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "loads");
+        agvStateLoads.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_LIST_OF_INT);
+        List<String> loadIdsAsStringList = agvState.getLoads().stream().map(MqttRequestHandler::extractLoadId).collect(Collectors.toList());
+        agvStateLoads.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, String.join(VDA5050Processor.DELIMITER_CSV, loadIdsAsStringList));
+        extractedAttributes.add(agvStateLoads);
+    }
+
+    private static String extractErrorId(Error error) {
+        return error.getErrorType();
+    }
+
+    private static java.lang.String extractLoadId(Load load) {
+        return load.getLoadId();
+    }
+
+    private static void extractAgvStateBatteryChargeLevel(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) {
+        if(null == agvState.getBatteryState()){
+            return;
+        }
+        HashMap agvStateBatteryCharge = new HashMap<String, String>();
+        agvStateBatteryCharge.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "batteryCharge");
+        agvStateBatteryCharge.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_FLOAT);
+        agvStateBatteryCharge.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, "" + agvState.getBatteryState().getBatteryCharge());
+        extractedAttributes.add(agvStateBatteryCharge);
+    }
+
+    private static void extractAgvStateTheta(AgvState agvState, LinkedList<HashMap<String, String>> extractedAttributes) {
+        if(null == agvState.getAgvposition()){
+            return;
+        }
+        HashMap agvStateTheta = new HashMap<String, String>();
+        agvStateTheta.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_NAME, "theta");
+        agvStateTheta.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_TYPE, VDA5050Processor.TYPE_FLOAT);
+        agvStateTheta.put(OtherUtility.KEY_EXTRACTED_ATTRIBUTE_VALUE, "" + agvState.getAgvposition().getTheta());
+        extractedAttributes.add(agvStateTheta);
+    }
+
+    private static void processQueryRequest(List<SimpleScene.IposQueryRequest> queryRequestsList) {
+        for (SimpleScene.IposQueryRequest proto_qReq : queryRequestsList){
+            DataStorageQueryRequest internal_qReq = SimpleSceneTransformer.queryReq_SScene2Internal(proto_qReq);
+            LOG.info("INDFRO:");
+            LOG.info("INDFRO: Received QueryRequest for trackingTaskId " + internal_qReq.getTrackingTaskId());
+            PositionMonitoring.receiveMessage(internal_qReq);
+        }
+    }
+
+    /*
+    private SimpleScene.IposConfigWrapper replaceNullByEmptyList(SimpleScene.IposConfigWrapper configWrapper) {
+        SimpleScene.IposConfigWrapper.Builder configWrapper_NoNull = SimpleScene.IposConfigWrapper.newBuilder();
+        configWrapper_NoNull.add;
+    }
+    */
+
+    private static void processPois(List<SimpleScene.POI> poisList) {
+        for (SimpleScene.POI poi : poisList){
+            POI poi_internal = SimpleSceneTransformer.poi_SScene2Internal(poi);
+            Administration.handlePoi(poi_internal);
+        }
+    }
+
+    private static void processRefSystems(List<SimpleScene.RefSystem> refSystemsList) {
+        for (SimpleScene.RefSystem refSystem : refSystemsList){
+            ReferenceSystem refSystem_internal = SimpleSceneTransformer.refSystem_SScene2Internal(refSystem);
+            Administration.handleRefSystem(refSystem_internal);
+        }
+    }
+
+    private static void processObjectConfigs(List<SimpleScene.IposObjectConfig> objectConfigsList) {
+        for( SimpleScene.IposObjectConfig objConfig : objectConfigsList){
+            Agent agent = SimpleSceneTransformer.agent_SScene2Internal(objConfig);
+            Administration.handleAgent(agent);
+        }
+    }
+
+    private static void processFrameConfigs(List<SimpleScene.IposFrameConfig> frames){
+        /*
+        if (null == frames){
+            LOG.info("ConfigWrapper-message contains no Frame-definitions");
+            return;
+        }
+        */
+        for( SimpleScene.IposFrameConfig frame : frames){
+            Zone zone = SimpleSceneTransformer.zone_SScene2Internal(frame);
+            Administration.handleZone(zone);
+        }
+    }
+
+    private static void processMonitoringRequests(SimpleScene.IposConfigWrapper iposConfigWrapper) {
+        for (IposMonitoringRequest monReq : iposConfigWrapper.getMonitoringRequestsList()){
+            MonitoringRequest monReqInternal = SimpleSceneTransformer.monReq_SScene2Internal(monReq);
+            PositionMonitoring.receiveMessage(monReqInternal);
+            // TODO: send request via JMS to MonitoringController
+        }
+    }
+}
diff --git a/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/service/VDA5050Transformer.java b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/service/VDA5050Transformer.java
new file mode 100644
index 0000000000000000000000000000000000000000..44c26e7fb6047796fa77923200634d3f6b2dcbb0
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/service/VDA5050Transformer.java
@@ -0,0 +1,70 @@
+package ipos.project.DataModellntegration.VDA5050Processor.service;
+
+import ipos.models.VDA5050;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error;
+import org.apache.logging.log4j.LogManager;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class VDA5050Transformer {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    private static VDA5050Factory vda5050Factory = VDA5050Factory.eINSTANCE;
+
+    public static AgvState agvState_proto2internal(VDA5050.AgvState agvState_proto) {
+        AgvState agvState_internal = vda5050Factory.createAgvState();
+        agvState_internal.setTimeStamp(agvState_proto.getTimeStamp());
+        agvState_internal.setSerialNumber(agvState_proto.getSerialNumber());
+        agvState_internal.setLastNodeId(agvState_proto.getLastNodeId());
+        agvState_internal.setManufacturer(agvState_proto.getManufacturer());
+        agvState_internal.setBatteryState(extractBatteryStateOrNull(agvState_proto));
+        agvState_internal.getErrors().addAll(extractErrorsOrEmptyList(agvState_proto));
+        agvState_internal.getLoads().addAll(extractLoadsOrEmptyList(agvState_proto));
+        agvState_internal.setAgvposition(extractAgvPositionOrNull(agvState_proto));
+        return agvState_internal;
+    }
+
+    private static AgvPosition extractAgvPositionOrNull(VDA5050.AgvState agvState_proto) {
+        boolean agvPositionNotPresentInMessage = ipos.models.VDA5050.AgvPosition.getDefaultInstance() == agvState_proto.getAgvPosition();
+        if (agvPositionNotPresentInMessage){
+            return null;
+        }else {
+            AgvPosition agvPosition_internal = vda5050Factory.createAgvPosition();
+            agvPosition_internal.setX(agvState_proto.getAgvPosition().getX());
+            agvPosition_internal.setY(agvState_proto.getAgvPosition().getY());
+            agvPosition_internal.setTheta(agvState_proto.getAgvPosition().getTheta());
+            return agvPosition_internal;
+        }
+    }
+
+    private static BatteryState extractBatteryStateOrNull(VDA5050.AgvState agvState_proto) {
+        if (ipos.models.VDA5050.BatteryState.getDefaultInstance() == agvState_proto.getBatteryState()){
+            return null;
+        }else {
+            BatteryState batteryState = vda5050Factory.createBatteryState();
+            batteryState.setBatteryCharge(agvState_proto.getBatteryState().getBatteryCharge());
+            return batteryState;
+        }
+    }
+
+    private static List<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> extractErrorsOrEmptyList(VDA5050.AgvState agvState_proto){
+        LinkedList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> errors = new LinkedList<>();
+        for (VDA5050.Error error_proto : agvState_proto.getErrorsList()){
+            Error error_internal = vda5050Factory.createError();
+            error_internal.setErrorType(error_proto.getErrorType());
+            errors.add(error_internal);
+        }
+        return errors;
+    }
+
+    private static List<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load> extractLoadsOrEmptyList(VDA5050.AgvState agvState_proto){
+        LinkedList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load> loads = new LinkedList<>();
+        for (VDA5050.Load load_proto : agvState_proto.getLoadsList()){
+            Load load_internal = vda5050Factory.createLoad();
+            load_internal.setLoadId(load_proto.getLoadId());
+            loads.add(load_internal);
+        }
+        return loads;
+    }
+}
diff --git a/src/main/java/ipos/project/DataModellntegration/api/MqttRequestHandler.java b/src/main/java/ipos/project/DataModellntegration/api/MqttRequestHandler.java
deleted file mode 100644
index 7dd6e7ee877f04416adce2d9886fcaa938f3ee51..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/api/MqttRequestHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package ipos.project.DataModellntegration.api;
-
-import com.google.protobuf.InvalidProtocolBufferException;
-import ipos.models.SimpleScene.IposSubscriptionRequest;
-import ipos.project.config.mqtt.Handler;
-import ipos.project.config.mqtt.MqttListener;
-import org.eclipse.paho.client.mqttv3.MqttMessage;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jms.core.JmsTemplate;
-
-
-// subscribe to the topic. It's example
-@MqttListener("usertopic/subscription-req")
-public class MqttRequestHandler implements Handler {
-
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
-    JmsTemplate jmsTemplate;
-
-    @Autowired
-    public MqttRequestHandler(JmsTemplate jmsTemplate) {
-        this.jmsTemplate = jmsTemplate;
-    }
-
-    // method that handle new message from the topic
-    public void handle(MqttMessage message) {
-        try {
-            IposSubscriptionRequest req = IposSubscriptionRequest.parseFrom(message.getPayload());
-            LOG.info("IposSubscriptionRequest received: \n"
-                    + req.toString());
-            // ... do something with request
-
-            this.jmsTemplate.convertAndSend("/request123", req); // submit request to the internal broker
-        } catch (InvalidProtocolBufferException e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/AbsolutePosition.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/AbsolutePosition.java
deleted file mode 100644
index 7962df73fd8492b5445f55209d285890b8b5321c..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/AbsolutePosition.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Absolute Position</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition#getPoint <em>Point</em>}</li>
- * </ul>
- *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAbsolutePosition()
- * @model
- * @generated
- */
-public interface AbsolutePosition extends Position {
-	/**
-	 * Returns the value of the '<em><b>Point</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Point</em>' reference.
-	 * @see #setPoint(WGS84Point)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAbsolutePosition_Point()
-	 * @model required="true"
-	 * @generated
-	 */
-	WGS84Point getPoint();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition#getPoint <em>Point</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Point</em>' reference.
-	 * @see #getPoint()
-	 * @generated
-	 */
-	void setPoint(WGS84Point value);
-
-} // AbsolutePosition
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Acceleration.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Acceleration.java
index 3069155c119caf040eb1bc89e01c6724ee3d1999..8c2bbd336e3da3027d590b5662500ca75ba0c098 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Acceleration.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Acceleration.java
@@ -9,10 +9,84 @@ import org.eclipse.emf.ecore.EObject;
  * A representation of the model object '<em><b>Acceleration</b></em>'.
  * <!-- end-user-doc -->
  *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getZ <em>Z</em>}</li>
+ * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAcceleration()
  * @model
  * @generated
  */
 public interface Acceleration extends EObject {
+	/**
+	 * Returns the value of the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>X</em>' attribute.
+	 * @see #setX(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAcceleration_X()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.Float"
+	 * @generated
+	 */
+	float getX();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getX <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>X</em>' attribute.
+	 * @see #getX()
+	 * @generated
+	 */
+	void setX(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Y</em>' attribute.
+	 * @see #setY(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAcceleration_Y()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.Float"
+	 * @generated
+	 */
+	float getY();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getY <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Y</em>' attribute.
+	 * @see #getY()
+	 * @generated
+	 */
+	void setY(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Z</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Z</em>' attribute.
+	 * @see #setZ(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAcceleration_Z()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.Float"
+	 * @generated
+	 */
+	float getZ();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getZ <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Z</em>' attribute.
+	 * @see #getZ()
+	 * @generated
+	 */
+	void setZ(float value);
+
 } // Acceleration
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Agent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Agent.java
index 419bf7729cca21e2d94ad4c398493a40c49ee392..d897bd2bbfbe051a26e7ce869f6ce189d02d9914 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Agent.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Agent.java
@@ -13,10 +13,8 @@ import org.eclipse.emf.common.util.EList;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getName <em>Name</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getLObject <em>LObject</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getNetInt <em>Net Int</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getPSensors <em>PSensors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getAgentType <em>Agent Type</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAgent()
@@ -24,28 +22,6 @@ import org.eclipse.emf.common.util.EList;
  * @generated
  */
 public interface Agent extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAgent_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
 	/**
 	 * Returns the value of the '<em><b>LObject</b></em>' reference list.
 	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject}.
@@ -59,37 +35,25 @@ public interface Agent extends Entity {
 	EList<LocalizableObject> getLObject();
 
 	/**
-	 * Returns the value of the '<em><b>Net Int</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Net Int</em>' reference.
-	 * @see #setNetInt(NetworkInterface)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAgent_NetInt()
-	 * @model required="true"
-	 * @generated
-	 */
-	NetworkInterface getNetInt();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getNetInt <em>Net Int</em>}' reference.
+	 * Returns the value of the '<em><b>Agent Type</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Net Int</em>' reference.
-	 * @see #getNetInt()
+	 * @return the value of the '<em>Agent Type</em>' attribute.
+	 * @see #setAgentType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAgent_AgentType()
+	 * @model
 	 * @generated
 	 */
-	void setNetInt(NetworkInterface value);
+	String getAgentType();
 
 	/**
-	 * Returns the value of the '<em><b>PSensors</b></em>' reference list.
-	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor}.
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getAgentType <em>Agent Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>PSensors</em>' reference list.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAgent_PSensors()
-	 * @model
+	 * @param value the new value of the '<em>Agent Type</em>' attribute.
+	 * @see #getAgentType()
 	 * @generated
 	 */
-	EList<PositionSensor> getPSensors();
+	void setAgentType(String value);
 
 } // Agent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/AngularRate.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/AngularRate.java
deleted file mode 100644
index 7d44f0984a7f4cdc55ae24e9c36b5d9152af7faa..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/AngularRate.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Angular Rate</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAngularRate()
- * @model
- * @generated
- */
-public interface AngularRate extends EObject {
-} // AngularRate
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Beacon.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Beacon.java
index 11f2f0f0f5811b9aba7478df4ee22ca5facf6567..4522ff76bf5e3c524236b5d014a75b64f6954649 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Beacon.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Beacon.java
@@ -15,13 +15,14 @@ import java.util.Map;
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Beacon#getDistances <em>Distances</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Beacon#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Beacon#getSensorId <em>Sensor Id</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getBeacon()
  * @model
  * @generated
  */
-public interface Beacon extends Rawdata {
+public interface Beacon extends RawdataEvent {
 	/**
 	 * Returns the value of the '<em><b>Distances</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -32,7 +33,7 @@ public interface Beacon extends Rawdata {
 	 * @model transient="true"
 	 * @generated
 	 */
-	Map<String, Integer> getDistances();
+	Map<String, Double> getDistances();
 
 	/**
 	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Beacon#getDistances <em>Distances</em>}' attribute.
@@ -42,7 +43,7 @@ public interface Beacon extends Rawdata {
 	 * @see #getDistances()
 	 * @generated
 	 */
-	void setDistances(Map<String, Integer> value);
+	void setDistances(Map<String, Double> value);
 
 	/**
 	 * Returns the value of the '<em><b>Type</b></em>' attribute.
@@ -66,4 +67,26 @@ public interface Beacon extends Rawdata {
 	 */
 	void setType(String value);
 
+	/**
+	 * Returns the value of the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sensor Id</em>' attribute.
+	 * @see #setSensorId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getBeacon_SensorId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getSensorId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Beacon#getSensorId <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sensor Id</em>' attribute.
+	 * @see #getSensorId()
+	 * @generated
+	 */
+	void setSensorId(String value);
+
 } // Beacon
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Bluetooth.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Bluetooth.java
index d1f98e44798dcced0ecef5717251fb3dd3fa4984..5e7793c96575870014ffe8ccf3a65a4004987740 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Bluetooth.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Bluetooth.java
@@ -31,7 +31,7 @@ public interface Bluetooth extends Beacon {
 	 * @model transient="true"
 	 * @generated
 	 */
-	Map<String, Integer> getRss();
+	Map<String, Double> getRss();
 
 	/**
 	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Bluetooth#getRss <em>Rss</em>}' attribute.
@@ -41,6 +41,6 @@ public interface Bluetooth extends Beacon {
 	 * @see #getRss()
 	 * @generated
 	 */
-	void setRss(Map<String, Integer> value);
+	void setRss(Map<String, Double> value);
 
 } // Bluetooth
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/DataStorageQueryRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/DataStorageQueryRequest.java
deleted file mode 100644
index 9ac0c20521c1a22d76c177999b3f1b0fb9d5901d..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/DataStorageQueryRequest.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Data Storage Query Request</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getDataStorageQueryRequest()
- * @model
- * @generated
- */
-public interface DataStorageQueryRequest extends EObject {
-} // DataStorageQueryRequest
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/DataStorageQueryResponse.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/DataStorageQueryResponse.java
new file mode 100644
index 0000000000000000000000000000000000000000..f2adfc0843c4444f89b92fb5a0ceb4994b7343df
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/DataStorageQueryResponse.java
@@ -0,0 +1,61 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Storage Query Response</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse#getPositionEvents <em>Position Events</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse#getTrackingTaskId <em>Tracking Task Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getDataStorageQueryResponse()
+ * @model
+ * @generated
+ */
+public interface DataStorageQueryResponse extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Position Events</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Position Events</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getDataStorageQueryResponse_PositionEvents()
+	 * @model
+	 * @generated
+	 */
+	EList<PositionEvent> getPositionEvents();
+
+	/**
+	 * Returns the value of the '<em><b>Tracking Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tracking Task Id</em>' attribute.
+	 * @see #setTrackingTaskId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getDataStorageQueryResponse_TrackingTaskId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getTrackingTaskId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse#getTrackingTaskId <em>Tracking Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tracking Task Id</em>' attribute.
+	 * @see #getTrackingTaskId()
+	 * @generated
+	 */
+	void setTrackingTaskId(String value);
+
+} // DataStorageQueryResponse
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/EventFilterCondition.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/EventFilterCondition.java
index 6aea00da4db647c20055103d4232a441c7d95bc5..1011992e2ff07dd31bc7083c48e709eee295b8a4 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/EventFilterCondition.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/EventFilterCondition.java
@@ -4,6 +4,7 @@ package ipos.project.DataModellntegration.iPos_Datamodel;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -17,15 +18,16 @@ import org.eclipse.emf.ecore.EObject;
  * </p>
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getTimeCondition <em>Time Condition</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getCategoryCondition <em>Category Condition</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getIdCondition <em>Id Condition</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getAccuracyCondition <em>Accuracy Condition</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionCondition <em>Position Condition</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getTimeMinInterval <em>Time Min Interval</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionDelta <em>Position Delta</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getSensorIdCondition <em>Sensor Id Condition</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getFilterStructure <em>Filter Structure</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionConditionCell <em>Position Condition Cell</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionConditionCells <em>Position Condition Cells</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getIdCondition <em>Id Condition</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getCategoryCondition <em>Category Condition</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPropertyCondition <em>Property Condition</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getEventFilterCondition()
@@ -55,51 +57,6 @@ public interface EventFilterCondition extends EObject {
 	 */
 	void setTimeCondition(ArrayList<String[]> value);
 
-	/**
-	 * Returns the value of the '<em><b>Category Condition</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Category Condition</em>' attribute.
-	 * @see #setCategoryCondition(List)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getEventFilterCondition_CategoryCondition()
-	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.StringList" transient="true"
-	 * @generated
-	 */
-	List<String> getCategoryCondition();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getCategoryCondition <em>Category Condition</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Category Condition</em>' attribute.
-	 * @see #getCategoryCondition()
-	 * @generated
-	 */
-	void setCategoryCondition(List<String> value);
-
-	/**
-	 * Returns the value of the '<em><b>Id Condition</b></em>' attribute.
-	 * The default value is <code>""</code>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Id Condition</em>' attribute.
-	 * @see #setIdCondition(List)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getEventFilterCondition_IdCondition()
-	 * @model default="" dataType="ipos.project.DataModellntegration.iPos_Datamodel.StringList" transient="true"
-	 * @generated
-	 */
-	List<String> getIdCondition();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getIdCondition <em>Id Condition</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Id Condition</em>' attribute.
-	 * @see #getIdCondition()
-	 * @generated
-	 */
-	void setIdCondition(List<String> value);
-
 	/**
 	 * Returns the value of the '<em><b>Accuracy Condition</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -233,25 +190,91 @@ public interface EventFilterCondition extends EObject {
 	void setFilterStructure(boolean[] value);
 
 	/**
-	 * Returns the value of the '<em><b>Position Condition Cell</b></em>' attribute.
+	 * Returns the value of the '<em><b>Position Condition Cells</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Position Condition Cells</em>' attribute.
+	 * @see #setPositionConditionCells(Map)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getEventFilterCondition_PositionConditionCells()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Map<String, ArrayList<Float[][]>> getPositionConditionCells();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionConditionCells <em>Position Condition Cells</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Position Condition Cells</em>' attribute.
+	 * @see #getPositionConditionCells()
+	 * @generated
+	 */
+	void setPositionConditionCells(Map<String, ArrayList<Float[][]>> value);
+
+	/**
+	 * Returns the value of the '<em><b>Id Condition</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Id Condition</em>' attribute.
+	 * @see #setIdCondition(List)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getEventFilterCondition_IdCondition()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.StringList"
+	 * @generated
+	 */
+	List<String> getIdCondition();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getIdCondition <em>Id Condition</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Id Condition</em>' attribute.
+	 * @see #getIdCondition()
+	 * @generated
+	 */
+	void setIdCondition(List<String> value);
+
+	/**
+	 * Returns the value of the '<em><b>Category Condition</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Category Condition</em>' attribute.
+	 * @see #setCategoryCondition(List)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getEventFilterCondition_CategoryCondition()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.StringList"
+	 * @generated
+	 */
+	List<String> getCategoryCondition();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getCategoryCondition <em>Category Condition</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Category Condition</em>' attribute.
+	 * @see #getCategoryCondition()
+	 * @generated
+	 */
+	void setCategoryCondition(List<String> value);
+
+	/**
+	 * Returns the value of the '<em><b>Property Condition</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Position Condition Cell</em>' attribute.
-	 * @see #setPositionConditionCell(ArrayList)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getEventFilterCondition_PositionConditionCell()
-	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.FloatArray3d"
+	 * @return the value of the '<em>Property Condition</em>' attribute.
+	 * @see #setPropertyCondition(List)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getEventFilterCondition_PropertyCondition()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.StringList"
 	 * @generated
 	 */
-	ArrayList<Float[][]> getPositionConditionCell();
+	List<String> getPropertyCondition();
 
 	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionConditionCell <em>Position Condition Cell</em>}' attribute.
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPropertyCondition <em>Property Condition</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Position Condition Cell</em>' attribute.
-	 * @see #getPositionConditionCell()
+	 * @param value the new value of the '<em>Property Condition</em>' attribute.
+	 * @see #getPropertyCondition()
 	 * @generated
 	 */
-	void setPositionConditionCell(ArrayList<Float[][]> value);
+	void setPropertyCondition(List<String> value);
 
 } // EventFilterCondition
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/EventFilterConfiguration.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/EventFilterConfiguration.java
index 23300598f997de738c874155d4a111a8eb859c05..b71e0b91a85585528c74fc6c0292e1c4aa48a871 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/EventFilterConfiguration.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/EventFilterConfiguration.java
@@ -96,7 +96,7 @@ public interface EventFilterConfiguration extends EObject {
 
 	/**
 	 * Returns the value of the '<em><b>Eventfiltercondition</b></em>' reference list.
-	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition}.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.TrackingTask}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Eventfiltercondition</em>' reference list.
@@ -104,6 +104,6 @@ public interface EventFilterConfiguration extends EObject {
 	 * @model
 	 * @generated
 	 */
-	EList<EventFilterCondition> getEventfiltercondition();
+	EList<TrackingTask> getEventfiltercondition();
 
 } // EventFilterConfiguration
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IMU.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IMU.java
index a3d48662c6f32a414073b56c9b35af8c4d236a00..a8a4fa1cdc600a32da9106493296e87eff0b98c1 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IMU.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IMU.java
@@ -13,24 +13,25 @@ package ipos.project.DataModellntegration.iPos_Datamodel;
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IMU#getAngularrate <em>Angularrate</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IMU#getAcceleration <em>Acceleration</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IMU#getSensorId <em>Sensor Id</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getIMU()
  * @model
  * @generated
  */
-public interface IMU extends Rawdata {
+public interface IMU extends RawdataEvent {
 	/**
 	 * Returns the value of the '<em><b>Angularrate</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Angularrate</em>' reference.
-	 * @see #setAngularrate(AngularRate)
+	 * @see #setAngularrate(Quaternion)
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getIMU_Angularrate()
 	 * @model required="true"
 	 * @generated
 	 */
-	AngularRate getAngularrate();
+	Quaternion getAngularrate();
 
 	/**
 	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IMU#getAngularrate <em>Angularrate</em>}' reference.
@@ -40,7 +41,7 @@ public interface IMU extends Rawdata {
 	 * @see #getAngularrate()
 	 * @generated
 	 */
-	void setAngularrate(AngularRate value);
+	void setAngularrate(Quaternion value);
 
 	/**
 	 * Returns the value of the '<em><b>Acceleration</b></em>' reference.
@@ -64,4 +65,26 @@ public interface IMU extends Rawdata {
 	 */
 	void setAcceleration(Acceleration value);
 
+	/**
+	 * Returns the value of the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sensor Id</em>' attribute.
+	 * @see #setSensorId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getIMU_SensorId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getSensorId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IMU#getSensorId <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sensor Id</em>' attribute.
+	 * @see #getSensorId()
+	 * @generated
+	 */
+	void setSensorId(String value);
+
 } // IMU
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/AgentRegistrationRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/AgentRegistrationRequest.java
similarity index 62%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/AgentRegistrationRequest.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/AgentRegistrationRequest.java
index 245a59a5ea83e5f860e65dadb596edc50600d603..50a046601aa580535e9792f26288d7c14d7ef83a 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/AgentRegistrationRequest.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/AgentRegistrationRequest.java
@@ -1,6 +1,6 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -10,7 +10,7 @@ import org.eclipse.emf.ecore.EObject;
  * <!-- end-user-doc -->
  *
  *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getAgentRegistrationRequest()
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getAgentRegistrationRequest()
  * @model
  * @generated
  */
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/DataStorageQueryRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/DataStorageQueryRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..b79fd4e0a3106485cd21fe67e4a73f3586833ebf
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/DataStorageQueryRequest.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Storage Query Request</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest#getTrackingTaskId <em>Tracking Task Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getDataStorageQueryRequest()
+ * @model
+ * @generated
+ */
+public interface DataStorageQueryRequest extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Tracking Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tracking Task Id</em>' attribute.
+	 * @see #setTrackingTaskId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getDataStorageQueryRequest_TrackingTaskId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getTrackingTaskId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest#getTrackingTaskId <em>Tracking Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tracking Task Id</em>' attribute.
+	 * @see #getTrackingTaskId()
+	 * @generated
+	 */
+	void setTrackingTaskId(String value);
+
+} // DataStorageQueryRequest
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/DataStorageRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/DataStorageRequest.java
similarity index 62%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/DataStorageRequest.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/DataStorageRequest.java
index 460d3fea0334ca40d33c5a423fb87e629d07a25c..56035b22d714da8d2237d2607b199102a4159a3f 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/DataStorageRequest.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/DataStorageRequest.java
@@ -1,6 +1,6 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -10,7 +10,7 @@ import org.eclipse.emf.ecore.EObject;
  * <!-- end-user-doc -->
  *
  *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getDataStorageRequest()
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getDataStorageRequest()
  * @model
  * @generated
  */
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosBTEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosBTEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..945c10530f006353a9f17532454dd736fd66fe7f
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosBTEvent.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import java.util.Map;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos BT Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent#getRss <em>Rss</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosBTEvent()
+ * @model
+ * @generated
+ */
+public interface IPosBTEvent extends IPosBeaconEvent {
+	/**
+	 * Returns the value of the '<em><b>Rss</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Rss</em>' attribute.
+	 * @see #setRss(Map)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosBTEvent_Rss()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Map<String, Double> getRss();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent#getRss <em>Rss</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Rss</em>' attribute.
+	 * @see #getRss()
+	 * @generated
+	 */
+	void setRss(Map<String, Double> value);
+
+} // IPosBTEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosBarcodeEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosBarcodeEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..f05cc136680c58e7ce869a53013454693c04978e
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosBarcodeEvent.java
@@ -0,0 +1,16 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos Barcode Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosBarcodeEvent()
+ * @model
+ * @generated
+ */
+public interface IPosBarcodeEvent extends IPosProximityEvent {
+} // IPosBarcodeEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosBeaconEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosBeaconEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..74ede265daac0bbf5ca393862aa64f010c283943
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosBeaconEvent.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import java.util.Map;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos Beacon Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent#getDistances <em>Distances</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosBeaconEvent()
+ * @model
+ * @generated
+ */
+public interface IPosBeaconEvent extends IPosRawdataEvent {
+	/**
+	 * Returns the value of the '<em><b>Distances</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Distances</em>' attribute.
+	 * @see #setDistances(Map)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosBeaconEvent_Distances()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Map<String, Double> getDistances();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent#getDistances <em>Distances</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Distances</em>' attribute.
+	 * @see #getDistances()
+	 * @generated
+	 */
+	void setDistances(Map<String, Double> value);
+
+} // IPosBeaconEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..ed0faace0f3f7b58256e374e3bfa7fed935c2213
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitFactory.java
@@ -0,0 +1,214 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage
+ * @generated
+ */
+public interface IPosDevKitFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	IPosDevKitFactory eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitFactoryImpl
+			.init();
+
+	/**
+	 * Returns a new object of class '<em>Tracking Request</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Tracking Request</em>'.
+	 * @generated
+	 */
+	TrackingRequest createTrackingRequest();
+
+	/**
+	 * Returns a new object of class '<em>Monitoring Request</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Monitoring Request</em>'.
+	 * @generated
+	 */
+	MonitoringRequest createMonitoringRequest();
+
+	/**
+	 * Returns a new object of class '<em>World Model Update Request</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>World Model Update Request</em>'.
+	 * @generated
+	 */
+	WorldModelUpdateRequest createWorldModelUpdateRequest();
+
+	/**
+	 * Returns a new object of class '<em>Data Storage Request</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Storage Request</em>'.
+	 * @generated
+	 */
+	DataStorageRequest createDataStorageRequest();
+
+	/**
+	 * Returns a new object of class '<em>World Model Query Request</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>World Model Query Request</em>'.
+	 * @generated
+	 */
+	WorldModelQueryRequest createWorldModelQueryRequest();
+
+	/**
+	 * Returns a new object of class '<em>Data Storage Query Request</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Storage Query Request</em>'.
+	 * @generated
+	 */
+	DataStorageQueryRequest createDataStorageQueryRequest();
+
+	/**
+	 * Returns a new object of class '<em>Agent Registration Request</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Agent Registration Request</em>'.
+	 * @generated
+	 */
+	AgentRegistrationRequest createAgentRegistrationRequest();
+
+	/**
+	 * Returns a new object of class '<em>Sensor Configuration Request</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Sensor Configuration Request</em>'.
+	 * @generated
+	 */
+	SensorConfigurationRequest createSensorConfigurationRequest();
+
+	/**
+	 * Returns a new object of class '<em>Ipos Position Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ipos Position Event</em>'.
+	 * @generated
+	 */
+	IposPositionEvent createIposPositionEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos Rawdata Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos Rawdata Event</em>'.
+	 * @generated
+	 */
+	IPosRawdataEvent createIPosRawdataEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos Beacon Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos Beacon Event</em>'.
+	 * @generated
+	 */
+	IPosBeaconEvent createIPosBeaconEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos UWB Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos UWB Event</em>'.
+	 * @generated
+	 */
+	IPosUWBEvent createIPosUWBEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos BT Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos BT Event</em>'.
+	 * @generated
+	 */
+	IPosBTEvent createIPosBTEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos Proximity Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos Proximity Event</em>'.
+	 * @generated
+	 */
+	IPosProximityEvent createIPosProximityEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos NFC Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos NFC Event</em>'.
+	 * @generated
+	 */
+	IPosNFCEvent createIPosNFCEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos Barcode Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos Barcode Event</em>'.
+	 * @generated
+	 */
+	IPosBarcodeEvent createIPosBarcodeEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos RFID Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos RFID Event</em>'.
+	 * @generated
+	 */
+	IPosRFIDEvent createIPosRFIDEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos Other Prox Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos Other Prox Event</em>'.
+	 * @generated
+	 */
+	IPosOtherProxEvent createIPosOtherProxEvent();
+
+	/**
+	 * Returns a new object of class '<em>IPos Other Beacon Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>IPos Other Beacon Event</em>'.
+	 * @generated
+	 */
+	IPosOtherBeaconEvent createIPosOtherBeaconEvent();
+
+	/**
+	 * Returns a new object of class '<em>Ipos Msg Rcv Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ipos Msg Rcv Event</em>'.
+	 * @generated
+	 */
+	IposMsgRcvEvent createIposMsgRcvEvent();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	IPosDevKitPackage getIPosDevKitPackage();
+
+} //IPosDevKitFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitPackage.java
new file mode 100644
index 0000000000000000000000000000000000000000..1214f3518a46a16c7b3815df51853340861ed976
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosDevKitPackage.java
@@ -0,0 +1,2690 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface IPosDevKitPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "IPosDevKit";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "IDK";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "IDK";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	IPosDevKitPackage eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl
+			.init();
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.TrackingRequestImpl <em>Tracking Request</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.TrackingRequestImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getTrackingRequest()
+	 * @generated
+	 */
+	int TRACKING_REQUEST = 0;
+
+	/**
+	 * The number of structural features of the '<em>Tracking Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACKING_REQUEST_FEATURE_COUNT = 0;
+
+	/**
+	 * The number of operations of the '<em>Tracking Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACKING_REQUEST_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl <em>Monitoring Request</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getMonitoringRequest()
+	 * @generated
+	 */
+	int MONITORING_REQUEST = 1;
+
+	/**
+	 * The feature id for the '<em><b>Frame Ids</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__FRAME_IDS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Delta</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__DELTA = 1;
+
+	/**
+	 * The feature id for the '<em><b>Update Frequency</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__UPDATE_FREQUENCY = 2;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__TYPE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__ID = 4;
+
+	/**
+	 * The feature id for the '<em><b>Fusion Strategy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__FUSION_STRATEGY = 5;
+
+	/**
+	 * The feature id for the '<em><b>Exit Notification</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__EXIT_NOTIFICATION = 6;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__PROPERTIES = 7;
+
+	/**
+	 * The feature id for the '<em><b>Monitoring Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__MONITORING_TASK_ID = 8;
+
+	/**
+	 * The feature id for the '<em><b>Requestor Protocol</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__REQUESTOR_PROTOCOL = 9;
+
+	/**
+	 * The feature id for the '<em><b>Serialization Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__SERIALIZATION_TYPE = 10;
+
+	/**
+	 * The feature id for the '<em><b>Ref System Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST__REF_SYSTEM_ID = 11;
+
+	/**
+	 * The number of structural features of the '<em>Monitoring Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST_FEATURE_COUNT = 12;
+
+	/**
+	 * The number of operations of the '<em>Monitoring Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_REQUEST_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.WorldModelUpdateRequestImpl <em>World Model Update Request</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.WorldModelUpdateRequestImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getWorldModelUpdateRequest()
+	 * @generated
+	 */
+	int WORLD_MODEL_UPDATE_REQUEST = 2;
+
+	/**
+	 * The number of structural features of the '<em>World Model Update Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WORLD_MODEL_UPDATE_REQUEST_FEATURE_COUNT = 0;
+
+	/**
+	 * The number of operations of the '<em>World Model Update Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WORLD_MODEL_UPDATE_REQUEST_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.DataStorageRequestImpl <em>Data Storage Request</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.DataStorageRequestImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getDataStorageRequest()
+	 * @generated
+	 */
+	int DATA_STORAGE_REQUEST = 3;
+
+	/**
+	 * The number of structural features of the '<em>Data Storage Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORAGE_REQUEST_FEATURE_COUNT = 0;
+
+	/**
+	 * The number of operations of the '<em>Data Storage Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORAGE_REQUEST_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.WorldModelQueryRequestImpl <em>World Model Query Request</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.WorldModelQueryRequestImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getWorldModelQueryRequest()
+	 * @generated
+	 */
+	int WORLD_MODEL_QUERY_REQUEST = 4;
+
+	/**
+	 * The number of structural features of the '<em>World Model Query Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WORLD_MODEL_QUERY_REQUEST_FEATURE_COUNT = 0;
+
+	/**
+	 * The number of operations of the '<em>World Model Query Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WORLD_MODEL_QUERY_REQUEST_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.DataStorageQueryRequestImpl <em>Data Storage Query Request</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.DataStorageQueryRequestImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getDataStorageQueryRequest()
+	 * @generated
+	 */
+	int DATA_STORAGE_QUERY_REQUEST = 5;
+
+	/**
+	 * The feature id for the '<em><b>Tracking Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORAGE_QUERY_REQUEST__TRACKING_TASK_ID = 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Storage Query Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORAGE_QUERY_REQUEST_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Data Storage Query Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORAGE_QUERY_REQUEST_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.AgentRegistrationRequestImpl <em>Agent Registration Request</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.AgentRegistrationRequestImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getAgentRegistrationRequest()
+	 * @generated
+	 */
+	int AGENT_REGISTRATION_REQUEST = 6;
+
+	/**
+	 * The number of structural features of the '<em>Agent Registration Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGENT_REGISTRATION_REQUEST_FEATURE_COUNT = 0;
+
+	/**
+	 * The number of operations of the '<em>Agent Registration Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGENT_REGISTRATION_REQUEST_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.SensorConfigurationRequestImpl <em>Sensor Configuration Request</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.SensorConfigurationRequestImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getSensorConfigurationRequest()
+	 * @generated
+	 */
+	int SENSOR_CONFIGURATION_REQUEST = 7;
+
+	/**
+	 * The number of structural features of the '<em>Sensor Configuration Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SENSOR_CONFIGURATION_REQUEST_FEATURE_COUNT = 0;
+
+	/**
+	 * The number of operations of the '<em>Sensor Configuration Request</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SENSOR_CONFIGURATION_REQUEST_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl <em>Ipos Position Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIposPositionEvent()
+	 * @generated
+	 */
+	int IPOS_POSITION_EVENT = 8;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT__AGENT_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT__SENSOR_ID = 1;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT__TYPE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT__SENSOR_TYPE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Last Pos Update</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT__LAST_POS_UPDATE = 4;
+
+	/**
+	 * The feature id for the '<em><b>Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT__POSITION = 5;
+
+	/**
+	 * The feature id for the '<em><b>Orientation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT__ORIENTATION = 6;
+
+	/**
+	 * The feature id for the '<em><b>Zone Descriptors</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT__ZONE_DESCRIPTORS = 7;
+
+	/**
+	 * The number of structural features of the '<em>Ipos Position Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT_FEATURE_COUNT = 8;
+
+	/**
+	 * The number of operations of the '<em>Ipos Position Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_POSITION_EVENT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRawdataEventImpl <em>IPos Rawdata Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRawdataEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosRawdataEvent()
+	 * @generated
+	 */
+	int IPOS_RAWDATA_EVENT = 9;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RAWDATA_EVENT__AGENT_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RAWDATA_EVENT__SENSOR_ID = 1;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RAWDATA_EVENT__AGENT_TYPE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RAWDATA_EVENT__SENSOR_TYPE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RAWDATA_EVENT__TIME_STAMP = 4;
+
+	/**
+	 * The number of structural features of the '<em>IPos Rawdata Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RAWDATA_EVENT_FEATURE_COUNT = 5;
+
+	/**
+	 * The number of operations of the '<em>IPos Rawdata Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RAWDATA_EVENT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBeaconEventImpl <em>IPos Beacon Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBeaconEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosBeaconEvent()
+	 * @generated
+	 */
+	int IPOS_BEACON_EVENT = 10;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BEACON_EVENT__AGENT_ID = IPOS_RAWDATA_EVENT__AGENT_ID;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BEACON_EVENT__SENSOR_ID = IPOS_RAWDATA_EVENT__SENSOR_ID;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BEACON_EVENT__AGENT_TYPE = IPOS_RAWDATA_EVENT__AGENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BEACON_EVENT__SENSOR_TYPE = IPOS_RAWDATA_EVENT__SENSOR_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BEACON_EVENT__TIME_STAMP = IPOS_RAWDATA_EVENT__TIME_STAMP;
+
+	/**
+	 * The feature id for the '<em><b>Distances</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BEACON_EVENT__DISTANCES = IPOS_RAWDATA_EVENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>IPos Beacon Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BEACON_EVENT_FEATURE_COUNT = IPOS_RAWDATA_EVENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>IPos Beacon Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BEACON_EVENT_OPERATION_COUNT = IPOS_RAWDATA_EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosUWBEventImpl <em>IPos UWB Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosUWBEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosUWBEvent()
+	 * @generated
+	 */
+	int IPOS_UWB_EVENT = 11;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_UWB_EVENT__AGENT_ID = IPOS_BEACON_EVENT__AGENT_ID;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_UWB_EVENT__SENSOR_ID = IPOS_BEACON_EVENT__SENSOR_ID;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_UWB_EVENT__AGENT_TYPE = IPOS_BEACON_EVENT__AGENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_UWB_EVENT__SENSOR_TYPE = IPOS_BEACON_EVENT__SENSOR_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_UWB_EVENT__TIME_STAMP = IPOS_BEACON_EVENT__TIME_STAMP;
+
+	/**
+	 * The feature id for the '<em><b>Distances</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_UWB_EVENT__DISTANCES = IPOS_BEACON_EVENT__DISTANCES;
+
+	/**
+	 * The number of structural features of the '<em>IPos UWB Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_UWB_EVENT_FEATURE_COUNT = IPOS_BEACON_EVENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>IPos UWB Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_UWB_EVENT_OPERATION_COUNT = IPOS_BEACON_EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBTEventImpl <em>IPos BT Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBTEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosBTEvent()
+	 * @generated
+	 */
+	int IPOS_BT_EVENT = 12;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BT_EVENT__AGENT_ID = IPOS_BEACON_EVENT__AGENT_ID;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BT_EVENT__SENSOR_ID = IPOS_BEACON_EVENT__SENSOR_ID;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BT_EVENT__AGENT_TYPE = IPOS_BEACON_EVENT__AGENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BT_EVENT__SENSOR_TYPE = IPOS_BEACON_EVENT__SENSOR_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BT_EVENT__TIME_STAMP = IPOS_BEACON_EVENT__TIME_STAMP;
+
+	/**
+	 * The feature id for the '<em><b>Distances</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BT_EVENT__DISTANCES = IPOS_BEACON_EVENT__DISTANCES;
+
+	/**
+	 * The feature id for the '<em><b>Rss</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BT_EVENT__RSS = IPOS_BEACON_EVENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>IPos BT Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BT_EVENT_FEATURE_COUNT = IPOS_BEACON_EVENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>IPos BT Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BT_EVENT_OPERATION_COUNT = IPOS_BEACON_EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosProximityEventImpl <em>IPos Proximity Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosProximityEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosProximityEvent()
+	 * @generated
+	 */
+	int IPOS_PROXIMITY_EVENT = 13;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_PROXIMITY_EVENT__AGENT_ID = IPOS_RAWDATA_EVENT__AGENT_ID;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_PROXIMITY_EVENT__SENSOR_ID = IPOS_RAWDATA_EVENT__SENSOR_ID;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_PROXIMITY_EVENT__AGENT_TYPE = IPOS_RAWDATA_EVENT__AGENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_PROXIMITY_EVENT__SENSOR_TYPE = IPOS_RAWDATA_EVENT__SENSOR_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_PROXIMITY_EVENT__TIME_STAMP = IPOS_RAWDATA_EVENT__TIME_STAMP;
+
+	/**
+	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_PROXIMITY_EVENT__TAG_ID = IPOS_RAWDATA_EVENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>IPos Proximity Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_PROXIMITY_EVENT_FEATURE_COUNT = IPOS_RAWDATA_EVENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>IPos Proximity Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_PROXIMITY_EVENT_OPERATION_COUNT = IPOS_RAWDATA_EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosNFCEventImpl <em>IPos NFC Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosNFCEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosNFCEvent()
+	 * @generated
+	 */
+	int IPOS_NFC_EVENT = 14;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_NFC_EVENT__AGENT_ID = IPOS_PROXIMITY_EVENT__AGENT_ID;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_NFC_EVENT__SENSOR_ID = IPOS_PROXIMITY_EVENT__SENSOR_ID;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_NFC_EVENT__AGENT_TYPE = IPOS_PROXIMITY_EVENT__AGENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_NFC_EVENT__SENSOR_TYPE = IPOS_PROXIMITY_EVENT__SENSOR_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_NFC_EVENT__TIME_STAMP = IPOS_PROXIMITY_EVENT__TIME_STAMP;
+
+	/**
+	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_NFC_EVENT__TAG_ID = IPOS_PROXIMITY_EVENT__TAG_ID;
+
+	/**
+	 * The feature id for the '<em><b>Tag Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_NFC_EVENT__TAG_DATA = IPOS_PROXIMITY_EVENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>IPos NFC Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_NFC_EVENT_FEATURE_COUNT = IPOS_PROXIMITY_EVENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>IPos NFC Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_NFC_EVENT_OPERATION_COUNT = IPOS_PROXIMITY_EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBarcodeEventImpl <em>IPos Barcode Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBarcodeEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosBarcodeEvent()
+	 * @generated
+	 */
+	int IPOS_BARCODE_EVENT = 15;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BARCODE_EVENT__AGENT_ID = IPOS_PROXIMITY_EVENT__AGENT_ID;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BARCODE_EVENT__SENSOR_ID = IPOS_PROXIMITY_EVENT__SENSOR_ID;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BARCODE_EVENT__AGENT_TYPE = IPOS_PROXIMITY_EVENT__AGENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BARCODE_EVENT__SENSOR_TYPE = IPOS_PROXIMITY_EVENT__SENSOR_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BARCODE_EVENT__TIME_STAMP = IPOS_PROXIMITY_EVENT__TIME_STAMP;
+
+	/**
+	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BARCODE_EVENT__TAG_ID = IPOS_PROXIMITY_EVENT__TAG_ID;
+
+	/**
+	 * The number of structural features of the '<em>IPos Barcode Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BARCODE_EVENT_FEATURE_COUNT = IPOS_PROXIMITY_EVENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>IPos Barcode Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_BARCODE_EVENT_OPERATION_COUNT = IPOS_PROXIMITY_EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRFIDEventImpl <em>IPos RFID Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRFIDEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosRFIDEvent()
+	 * @generated
+	 */
+	int IPOS_RFID_EVENT = 16;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RFID_EVENT__AGENT_ID = IPOS_PROXIMITY_EVENT__AGENT_ID;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RFID_EVENT__SENSOR_ID = IPOS_PROXIMITY_EVENT__SENSOR_ID;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RFID_EVENT__AGENT_TYPE = IPOS_PROXIMITY_EVENT__AGENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RFID_EVENT__SENSOR_TYPE = IPOS_PROXIMITY_EVENT__SENSOR_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RFID_EVENT__TIME_STAMP = IPOS_PROXIMITY_EVENT__TIME_STAMP;
+
+	/**
+	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RFID_EVENT__TAG_ID = IPOS_PROXIMITY_EVENT__TAG_ID;
+
+	/**
+	 * The feature id for the '<em><b>Location</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RFID_EVENT__LOCATION = IPOS_PROXIMITY_EVENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>IPos RFID Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RFID_EVENT_FEATURE_COUNT = IPOS_PROXIMITY_EVENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>IPos RFID Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_RFID_EVENT_OPERATION_COUNT = IPOS_PROXIMITY_EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherProxEventImpl <em>IPos Other Prox Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherProxEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosOtherProxEvent()
+	 * @generated
+	 */
+	int IPOS_OTHER_PROX_EVENT = 17;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_PROX_EVENT__AGENT_ID = IPOS_PROXIMITY_EVENT__AGENT_ID;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_PROX_EVENT__SENSOR_ID = IPOS_PROXIMITY_EVENT__SENSOR_ID;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_PROX_EVENT__AGENT_TYPE = IPOS_PROXIMITY_EVENT__AGENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_PROX_EVENT__SENSOR_TYPE = IPOS_PROXIMITY_EVENT__SENSOR_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_PROX_EVENT__TIME_STAMP = IPOS_PROXIMITY_EVENT__TIME_STAMP;
+
+	/**
+	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_PROX_EVENT__TAG_ID = IPOS_PROXIMITY_EVENT__TAG_ID;
+
+	/**
+	 * The feature id for the '<em><b>Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_PROX_EVENT__DATA = IPOS_PROXIMITY_EVENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>IPos Other Prox Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_PROX_EVENT_FEATURE_COUNT = IPOS_PROXIMITY_EVENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>IPos Other Prox Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_PROX_EVENT_OPERATION_COUNT = IPOS_PROXIMITY_EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherBeaconEventImpl <em>IPos Other Beacon Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherBeaconEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosOtherBeaconEvent()
+	 * @generated
+	 */
+	int IPOS_OTHER_BEACON_EVENT = 18;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_BEACON_EVENT__AGENT_ID = IPOS_BEACON_EVENT__AGENT_ID;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_BEACON_EVENT__SENSOR_ID = IPOS_BEACON_EVENT__SENSOR_ID;
+
+	/**
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_BEACON_EVENT__AGENT_TYPE = IPOS_BEACON_EVENT__AGENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_BEACON_EVENT__SENSOR_TYPE = IPOS_BEACON_EVENT__SENSOR_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_BEACON_EVENT__TIME_STAMP = IPOS_BEACON_EVENT__TIME_STAMP;
+
+	/**
+	 * The feature id for the '<em><b>Distances</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_BEACON_EVENT__DISTANCES = IPOS_BEACON_EVENT__DISTANCES;
+
+	/**
+	 * The feature id for the '<em><b>Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_BEACON_EVENT__DATA = IPOS_BEACON_EVENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>IPos Other Beacon Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_BEACON_EVENT_FEATURE_COUNT = IPOS_BEACON_EVENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>IPos Other Beacon Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_OTHER_BEACON_EVENT_OPERATION_COUNT = IPOS_BEACON_EVENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl <em>Ipos Msg Rcv Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIposMsgRcvEvent()
+	 * @generated
+	 */
+	int IPOS_MSG_RCV_EVENT = 19;
+
+	/**
+	 * The feature id for the '<em><b>Protocol Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT__PROTOCOL_NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Serialized Msg</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT__SERIALIZED_MSG = 1;
+
+	/**
+	 * The feature id for the '<em><b>Last Pos Update</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Last Known Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION = 3;
+
+	/**
+	 * The feature id for the '<em><b>Last Known Orientation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION = 4;
+
+	/**
+	 * The feature id for the '<em><b>Last Known Zonedescriptors</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS = 5;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT__AGENT_ID = 6;
+
+	/**
+	 * The feature id for the '<em><b>Extracted Attributes</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES = 7;
+
+	/**
+	 * The feature id for the '<em><b>Timestamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT__TIMESTAMP = 8;
+
+	/**
+	 * The number of structural features of the '<em>Ipos Msg Rcv Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT_FEATURE_COUNT = 9;
+
+	/**
+	 * The number of operations of the '<em>Ipos Msg Rcv Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IPOS_MSG_RCV_EVENT_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.TrackingRequest <em>Tracking Request</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Tracking Request</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.TrackingRequest
+	 * @generated
+	 */
+	EClass getTrackingRequest();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest <em>Monitoring Request</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Monitoring Request</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest
+	 * @generated
+	 */
+	EClass getMonitoringRequest();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getFrameIds <em>Frame Ids</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Frame Ids</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getFrameIds()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_FrameIds();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getDelta <em>Delta</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Delta</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getDelta()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_Delta();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getUpdateFrequency <em>Update Frequency</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Update Frequency</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getUpdateFrequency()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_UpdateFrequency();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getType()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getId()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_Id();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getFusionStrategy <em>Fusion Strategy</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Fusion Strategy</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getFusionStrategy()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_FusionStrategy();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#isExitNotification <em>Exit Notification</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Exit Notification</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#isExitNotification()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_ExitNotification();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getProperties <em>Properties</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Properties</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getProperties()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_Properties();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getMonitoringTaskId <em>Monitoring Task Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Monitoring Task Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getMonitoringTaskId()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_MonitoringTaskId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getRequestorProtocol <em>Requestor Protocol</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Requestor Protocol</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getRequestorProtocol()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_RequestorProtocol();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getSerializationType <em>Serialization Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Serialization Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getSerializationType()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_SerializationType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getRefSystemId <em>Ref System Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Ref System Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getRefSystemId()
+	 * @see #getMonitoringRequest()
+	 * @generated
+	 */
+	EAttribute getMonitoringRequest_RefSystemId();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelUpdateRequest <em>World Model Update Request</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>World Model Update Request</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelUpdateRequest
+	 * @generated
+	 */
+	EClass getWorldModelUpdateRequest();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageRequest <em>Data Storage Request</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Storage Request</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageRequest
+	 * @generated
+	 */
+	EClass getDataStorageRequest();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelQueryRequest <em>World Model Query Request</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>World Model Query Request</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelQueryRequest
+	 * @generated
+	 */
+	EClass getWorldModelQueryRequest();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest <em>Data Storage Query Request</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Storage Query Request</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest
+	 * @generated
+	 */
+	EClass getDataStorageQueryRequest();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest#getTrackingTaskId <em>Tracking Task Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tracking Task Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest#getTrackingTaskId()
+	 * @see #getDataStorageQueryRequest()
+	 * @generated
+	 */
+	EAttribute getDataStorageQueryRequest_TrackingTaskId();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.AgentRegistrationRequest <em>Agent Registration Request</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Agent Registration Request</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.AgentRegistrationRequest
+	 * @generated
+	 */
+	EClass getAgentRegistrationRequest();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.SensorConfigurationRequest <em>Sensor Configuration Request</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Sensor Configuration Request</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.SensorConfigurationRequest
+	 * @generated
+	 */
+	EClass getSensorConfigurationRequest();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent <em>Ipos Position Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ipos Position Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent
+	 * @generated
+	 */
+	EClass getIposPositionEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getAgentId <em>Agent Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Agent Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getAgentId()
+	 * @see #getIposPositionEvent()
+	 * @generated
+	 */
+	EAttribute getIposPositionEvent_AgentId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getSensorId <em>Sensor Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensor Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getSensorId()
+	 * @see #getIposPositionEvent()
+	 * @generated
+	 */
+	EAttribute getIposPositionEvent_SensorId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getType()
+	 * @see #getIposPositionEvent()
+	 * @generated
+	 */
+	EAttribute getIposPositionEvent_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getSensorType <em>Sensor Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensor Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getSensorType()
+	 * @see #getIposPositionEvent()
+	 * @generated
+	 */
+	EAttribute getIposPositionEvent_SensorType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getLastPosUpdate <em>Last Pos Update</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Last Pos Update</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getLastPosUpdate()
+	 * @see #getIposPositionEvent()
+	 * @generated
+	 */
+	EAttribute getIposPositionEvent_LastPosUpdate();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getPosition <em>Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Position</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getPosition()
+	 * @see #getIposPositionEvent()
+	 * @generated
+	 */
+	EReference getIposPositionEvent_Position();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getOrientation <em>Orientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Orientation</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getOrientation()
+	 * @see #getIposPositionEvent()
+	 * @generated
+	 */
+	EReference getIposPositionEvent_Orientation();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getZoneDescriptors <em>Zone Descriptors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Zone Descriptors</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getZoneDescriptors()
+	 * @see #getIposPositionEvent()
+	 * @generated
+	 */
+	EReference getIposPositionEvent_ZoneDescriptors();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent <em>IPos Rawdata Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos Rawdata Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent
+	 * @generated
+	 */
+	EClass getIPosRawdataEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getAgentId <em>Agent Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Agent Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getAgentId()
+	 * @see #getIPosRawdataEvent()
+	 * @generated
+	 */
+	EAttribute getIPosRawdataEvent_AgentId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getSensorId <em>Sensor Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensor Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getSensorId()
+	 * @see #getIPosRawdataEvent()
+	 * @generated
+	 */
+	EAttribute getIPosRawdataEvent_SensorId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getAgentType <em>Agent Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Agent Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getAgentType()
+	 * @see #getIPosRawdataEvent()
+	 * @generated
+	 */
+	EAttribute getIPosRawdataEvent_AgentType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getSensorType <em>Sensor Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensor Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getSensorType()
+	 * @see #getIPosRawdataEvent()
+	 * @generated
+	 */
+	EAttribute getIPosRawdataEvent_SensorType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getTimeStamp <em>Time Stamp</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Time Stamp</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getTimeStamp()
+	 * @see #getIPosRawdataEvent()
+	 * @generated
+	 */
+	EAttribute getIPosRawdataEvent_TimeStamp();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent <em>IPos Beacon Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos Beacon Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent
+	 * @generated
+	 */
+	EClass getIPosBeaconEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent#getDistances <em>Distances</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Distances</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent#getDistances()
+	 * @see #getIPosBeaconEvent()
+	 * @generated
+	 */
+	EAttribute getIPosBeaconEvent_Distances();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent <em>IPos UWB Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos UWB Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent
+	 * @generated
+	 */
+	EClass getIPosUWBEvent();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent <em>IPos BT Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos BT Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent
+	 * @generated
+	 */
+	EClass getIPosBTEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent#getRss <em>Rss</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Rss</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent#getRss()
+	 * @see #getIPosBTEvent()
+	 * @generated
+	 */
+	EAttribute getIPosBTEvent_Rss();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent <em>IPos Proximity Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos Proximity Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent
+	 * @generated
+	 */
+	EClass getIPosProximityEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent#getTagId <em>Tag Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tag Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent#getTagId()
+	 * @see #getIPosProximityEvent()
+	 * @generated
+	 */
+	EAttribute getIPosProximityEvent_TagId();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent <em>IPos NFC Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos NFC Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent
+	 * @generated
+	 */
+	EClass getIPosNFCEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent#getTagData <em>Tag Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tag Data</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent#getTagData()
+	 * @see #getIPosNFCEvent()
+	 * @generated
+	 */
+	EAttribute getIPosNFCEvent_TagData();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBarcodeEvent <em>IPos Barcode Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos Barcode Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBarcodeEvent
+	 * @generated
+	 */
+	EClass getIPosBarcodeEvent();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent <em>IPos RFID Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos RFID Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent
+	 * @generated
+	 */
+	EClass getIPosRFIDEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent#getLocation <em>Location</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Location</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent#getLocation()
+	 * @see #getIPosRFIDEvent()
+	 * @generated
+	 */
+	EAttribute getIPosRFIDEvent_Location();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent <em>IPos Other Prox Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos Other Prox Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent
+	 * @generated
+	 */
+	EClass getIPosOtherProxEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent#getData <em>Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Data</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent#getData()
+	 * @see #getIPosOtherProxEvent()
+	 * @generated
+	 */
+	EAttribute getIPosOtherProxEvent_Data();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent <em>IPos Other Beacon Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IPos Other Beacon Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent
+	 * @generated
+	 */
+	EClass getIPosOtherBeaconEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent#getData <em>Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Data</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent#getData()
+	 * @see #getIPosOtherBeaconEvent()
+	 * @generated
+	 */
+	EAttribute getIPosOtherBeaconEvent_Data();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent <em>Ipos Msg Rcv Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ipos Msg Rcv Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent
+	 * @generated
+	 */
+	EClass getIposMsgRcvEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getProtocolName <em>Protocol Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Protocol Name</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getProtocolName()
+	 * @see #getIposMsgRcvEvent()
+	 * @generated
+	 */
+	EAttribute getIposMsgRcvEvent_ProtocolName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getSerializedMsg <em>Serialized Msg</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Serialized Msg</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getSerializedMsg()
+	 * @see #getIposMsgRcvEvent()
+	 * @generated
+	 */
+	EAttribute getIposMsgRcvEvent_SerializedMsg();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastPosUpdate <em>Last Pos Update</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Last Pos Update</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastPosUpdate()
+	 * @see #getIposMsgRcvEvent()
+	 * @generated
+	 */
+	EAttribute getIposMsgRcvEvent_LastPosUpdate();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownPosition <em>Last Known Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Last Known Position</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownPosition()
+	 * @see #getIposMsgRcvEvent()
+	 * @generated
+	 */
+	EReference getIposMsgRcvEvent_LastKnownPosition();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownOrientation <em>Last Known Orientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Last Known Orientation</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownOrientation()
+	 * @see #getIposMsgRcvEvent()
+	 * @generated
+	 */
+	EReference getIposMsgRcvEvent_LastKnownOrientation();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownZonedescriptors <em>Last Known Zonedescriptors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Last Known Zonedescriptors</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownZonedescriptors()
+	 * @see #getIposMsgRcvEvent()
+	 * @generated
+	 */
+	EReference getIposMsgRcvEvent_LastKnownZonedescriptors();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getAgentId <em>Agent Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Agent Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getAgentId()
+	 * @see #getIposMsgRcvEvent()
+	 * @generated
+	 */
+	EAttribute getIposMsgRcvEvent_AgentId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getExtractedAttributes <em>Extracted Attributes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Extracted Attributes</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getExtractedAttributes()
+	 * @see #getIposMsgRcvEvent()
+	 * @generated
+	 */
+	EAttribute getIposMsgRcvEvent_ExtractedAttributes();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getTimestamp <em>Timestamp</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Timestamp</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getTimestamp()
+	 * @see #getIposMsgRcvEvent()
+	 * @generated
+	 */
+	EAttribute getIposMsgRcvEvent_Timestamp();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	IPosDevKitFactory getIPosDevKitFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.TrackingRequestImpl <em>Tracking Request</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.TrackingRequestImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getTrackingRequest()
+		 * @generated
+		 */
+		EClass TRACKING_REQUEST = eINSTANCE.getTrackingRequest();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl <em>Monitoring Request</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getMonitoringRequest()
+		 * @generated
+		 */
+		EClass MONITORING_REQUEST = eINSTANCE.getMonitoringRequest();
+
+		/**
+		 * The meta object literal for the '<em><b>Frame Ids</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__FRAME_IDS = eINSTANCE.getMonitoringRequest_FrameIds();
+
+		/**
+		 * The meta object literal for the '<em><b>Delta</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__DELTA = eINSTANCE.getMonitoringRequest_Delta();
+
+		/**
+		 * The meta object literal for the '<em><b>Update Frequency</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__UPDATE_FREQUENCY = eINSTANCE.getMonitoringRequest_UpdateFrequency();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__TYPE = eINSTANCE.getMonitoringRequest_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__ID = eINSTANCE.getMonitoringRequest_Id();
+
+		/**
+		 * The meta object literal for the '<em><b>Fusion Strategy</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__FUSION_STRATEGY = eINSTANCE.getMonitoringRequest_FusionStrategy();
+
+		/**
+		 * The meta object literal for the '<em><b>Exit Notification</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__EXIT_NOTIFICATION = eINSTANCE.getMonitoringRequest_ExitNotification();
+
+		/**
+		 * The meta object literal for the '<em><b>Properties</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__PROPERTIES = eINSTANCE.getMonitoringRequest_Properties();
+
+		/**
+		 * The meta object literal for the '<em><b>Monitoring Task Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__MONITORING_TASK_ID = eINSTANCE.getMonitoringRequest_MonitoringTaskId();
+
+		/**
+		 * The meta object literal for the '<em><b>Requestor Protocol</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__REQUESTOR_PROTOCOL = eINSTANCE.getMonitoringRequest_RequestorProtocol();
+
+		/**
+		 * The meta object literal for the '<em><b>Serialization Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__SERIALIZATION_TYPE = eINSTANCE.getMonitoringRequest_SerializationType();
+
+		/**
+		 * The meta object literal for the '<em><b>Ref System Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_REQUEST__REF_SYSTEM_ID = eINSTANCE.getMonitoringRequest_RefSystemId();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.WorldModelUpdateRequestImpl <em>World Model Update Request</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.WorldModelUpdateRequestImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getWorldModelUpdateRequest()
+		 * @generated
+		 */
+		EClass WORLD_MODEL_UPDATE_REQUEST = eINSTANCE.getWorldModelUpdateRequest();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.DataStorageRequestImpl <em>Data Storage Request</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.DataStorageRequestImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getDataStorageRequest()
+		 * @generated
+		 */
+		EClass DATA_STORAGE_REQUEST = eINSTANCE.getDataStorageRequest();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.WorldModelQueryRequestImpl <em>World Model Query Request</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.WorldModelQueryRequestImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getWorldModelQueryRequest()
+		 * @generated
+		 */
+		EClass WORLD_MODEL_QUERY_REQUEST = eINSTANCE.getWorldModelQueryRequest();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.DataStorageQueryRequestImpl <em>Data Storage Query Request</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.DataStorageQueryRequestImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getDataStorageQueryRequest()
+		 * @generated
+		 */
+		EClass DATA_STORAGE_QUERY_REQUEST = eINSTANCE.getDataStorageQueryRequest();
+
+		/**
+		 * The meta object literal for the '<em><b>Tracking Task Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_STORAGE_QUERY_REQUEST__TRACKING_TASK_ID = eINSTANCE.getDataStorageQueryRequest_TrackingTaskId();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.AgentRegistrationRequestImpl <em>Agent Registration Request</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.AgentRegistrationRequestImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getAgentRegistrationRequest()
+		 * @generated
+		 */
+		EClass AGENT_REGISTRATION_REQUEST = eINSTANCE.getAgentRegistrationRequest();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.SensorConfigurationRequestImpl <em>Sensor Configuration Request</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.SensorConfigurationRequestImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getSensorConfigurationRequest()
+		 * @generated
+		 */
+		EClass SENSOR_CONFIGURATION_REQUEST = eINSTANCE.getSensorConfigurationRequest();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl <em>Ipos Position Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIposPositionEvent()
+		 * @generated
+		 */
+		EClass IPOS_POSITION_EVENT = eINSTANCE.getIposPositionEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Agent Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_POSITION_EVENT__AGENT_ID = eINSTANCE.getIposPositionEvent_AgentId();
+
+		/**
+		 * The meta object literal for the '<em><b>Sensor Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_POSITION_EVENT__SENSOR_ID = eINSTANCE.getIposPositionEvent_SensorId();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_POSITION_EVENT__TYPE = eINSTANCE.getIposPositionEvent_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Sensor Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_POSITION_EVENT__SENSOR_TYPE = eINSTANCE.getIposPositionEvent_SensorType();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Pos Update</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_POSITION_EVENT__LAST_POS_UPDATE = eINSTANCE.getIposPositionEvent_LastPosUpdate();
+
+		/**
+		 * The meta object literal for the '<em><b>Position</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference IPOS_POSITION_EVENT__POSITION = eINSTANCE.getIposPositionEvent_Position();
+
+		/**
+		 * The meta object literal for the '<em><b>Orientation</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference IPOS_POSITION_EVENT__ORIENTATION = eINSTANCE.getIposPositionEvent_Orientation();
+
+		/**
+		 * The meta object literal for the '<em><b>Zone Descriptors</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference IPOS_POSITION_EVENT__ZONE_DESCRIPTORS = eINSTANCE.getIposPositionEvent_ZoneDescriptors();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRawdataEventImpl <em>IPos Rawdata Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRawdataEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosRawdataEvent()
+		 * @generated
+		 */
+		EClass IPOS_RAWDATA_EVENT = eINSTANCE.getIPosRawdataEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Agent Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_RAWDATA_EVENT__AGENT_ID = eINSTANCE.getIPosRawdataEvent_AgentId();
+
+		/**
+		 * The meta object literal for the '<em><b>Sensor Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_RAWDATA_EVENT__SENSOR_ID = eINSTANCE.getIPosRawdataEvent_SensorId();
+
+		/**
+		 * The meta object literal for the '<em><b>Agent Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_RAWDATA_EVENT__AGENT_TYPE = eINSTANCE.getIPosRawdataEvent_AgentType();
+
+		/**
+		 * The meta object literal for the '<em><b>Sensor Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_RAWDATA_EVENT__SENSOR_TYPE = eINSTANCE.getIPosRawdataEvent_SensorType();
+
+		/**
+		 * The meta object literal for the '<em><b>Time Stamp</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_RAWDATA_EVENT__TIME_STAMP = eINSTANCE.getIPosRawdataEvent_TimeStamp();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBeaconEventImpl <em>IPos Beacon Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBeaconEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosBeaconEvent()
+		 * @generated
+		 */
+		EClass IPOS_BEACON_EVENT = eINSTANCE.getIPosBeaconEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Distances</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_BEACON_EVENT__DISTANCES = eINSTANCE.getIPosBeaconEvent_Distances();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosUWBEventImpl <em>IPos UWB Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosUWBEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosUWBEvent()
+		 * @generated
+		 */
+		EClass IPOS_UWB_EVENT = eINSTANCE.getIPosUWBEvent();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBTEventImpl <em>IPos BT Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBTEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosBTEvent()
+		 * @generated
+		 */
+		EClass IPOS_BT_EVENT = eINSTANCE.getIPosBTEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Rss</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_BT_EVENT__RSS = eINSTANCE.getIPosBTEvent_Rss();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosProximityEventImpl <em>IPos Proximity Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosProximityEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosProximityEvent()
+		 * @generated
+		 */
+		EClass IPOS_PROXIMITY_EVENT = eINSTANCE.getIPosProximityEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Tag Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_PROXIMITY_EVENT__TAG_ID = eINSTANCE.getIPosProximityEvent_TagId();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosNFCEventImpl <em>IPos NFC Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosNFCEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosNFCEvent()
+		 * @generated
+		 */
+		EClass IPOS_NFC_EVENT = eINSTANCE.getIPosNFCEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Tag Data</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_NFC_EVENT__TAG_DATA = eINSTANCE.getIPosNFCEvent_TagData();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBarcodeEventImpl <em>IPos Barcode Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBarcodeEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosBarcodeEvent()
+		 * @generated
+		 */
+		EClass IPOS_BARCODE_EVENT = eINSTANCE.getIPosBarcodeEvent();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRFIDEventImpl <em>IPos RFID Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRFIDEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosRFIDEvent()
+		 * @generated
+		 */
+		EClass IPOS_RFID_EVENT = eINSTANCE.getIPosRFIDEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Location</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_RFID_EVENT__LOCATION = eINSTANCE.getIPosRFIDEvent_Location();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherProxEventImpl <em>IPos Other Prox Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherProxEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosOtherProxEvent()
+		 * @generated
+		 */
+		EClass IPOS_OTHER_PROX_EVENT = eINSTANCE.getIPosOtherProxEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Data</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_OTHER_PROX_EVENT__DATA = eINSTANCE.getIPosOtherProxEvent_Data();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherBeaconEventImpl <em>IPos Other Beacon Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherBeaconEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIPosOtherBeaconEvent()
+		 * @generated
+		 */
+		EClass IPOS_OTHER_BEACON_EVENT = eINSTANCE.getIPosOtherBeaconEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Data</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_OTHER_BEACON_EVENT__DATA = eINSTANCE.getIPosOtherBeaconEvent_Data();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl <em>Ipos Msg Rcv Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl#getIposMsgRcvEvent()
+		 * @generated
+		 */
+		EClass IPOS_MSG_RCV_EVENT = eINSTANCE.getIposMsgRcvEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Protocol Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_MSG_RCV_EVENT__PROTOCOL_NAME = eINSTANCE.getIposMsgRcvEvent_ProtocolName();
+
+		/**
+		 * The meta object literal for the '<em><b>Serialized Msg</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_MSG_RCV_EVENT__SERIALIZED_MSG = eINSTANCE.getIposMsgRcvEvent_SerializedMsg();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Pos Update</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE = eINSTANCE.getIposMsgRcvEvent_LastPosUpdate();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Known Position</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION = eINSTANCE.getIposMsgRcvEvent_LastKnownPosition();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Known Orientation</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION = eINSTANCE.getIposMsgRcvEvent_LastKnownOrientation();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Known Zonedescriptors</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS = eINSTANCE
+				.getIposMsgRcvEvent_LastKnownZonedescriptors();
+
+		/**
+		 * The meta object literal for the '<em><b>Agent Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_MSG_RCV_EVENT__AGENT_ID = eINSTANCE.getIposMsgRcvEvent_AgentId();
+
+		/**
+		 * The meta object literal for the '<em><b>Extracted Attributes</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES = eINSTANCE.getIposMsgRcvEvent_ExtractedAttributes();
+
+		/**
+		 * The meta object literal for the '<em><b>Timestamp</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IPOS_MSG_RCV_EVENT__TIMESTAMP = eINSTANCE.getIposMsgRcvEvent_Timestamp();
+
+	}
+
+} //IPosDevKitPackage
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosNFCEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosNFCEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..1f070add2c6cbcb74642bee10a8760f3b642e532
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosNFCEvent.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import java.util.Map;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos NFC Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent#getTagData <em>Tag Data</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosNFCEvent()
+ * @model
+ * @generated
+ */
+public interface IPosNFCEvent extends IPosProximityEvent {
+	/**
+	 * Returns the value of the '<em><b>Tag Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tag Data</em>' attribute.
+	 * @see #setTagData(Map)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosNFCEvent_TagData()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Map<String, Object> getTagData();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent#getTagData <em>Tag Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tag Data</em>' attribute.
+	 * @see #getTagData()
+	 * @generated
+	 */
+	void setTagData(Map<String, Object> value);
+
+} // IPosNFCEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosOtherBeaconEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosOtherBeaconEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb7ac1c6d6b830e865513426a6a718cf90654e63
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosOtherBeaconEvent.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import java.util.Map;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos Other Beacon Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent#getData <em>Data</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosOtherBeaconEvent()
+ * @model
+ * @generated
+ */
+public interface IPosOtherBeaconEvent extends IPosBeaconEvent {
+	/**
+	 * Returns the value of the '<em><b>Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data</em>' attribute.
+	 * @see #setData(Map)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosOtherBeaconEvent_Data()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Map<String, Object> getData();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent#getData <em>Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Data</em>' attribute.
+	 * @see #getData()
+	 * @generated
+	 */
+	void setData(Map<String, Object> value);
+
+} // IPosOtherBeaconEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosOtherProxEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosOtherProxEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..056e6dc1584a2afb654303d4a991b7b8c977c096
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosOtherProxEvent.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import java.util.Map;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos Other Prox Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent#getData <em>Data</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosOtherProxEvent()
+ * @model
+ * @generated
+ */
+public interface IPosOtherProxEvent extends IPosProximityEvent {
+	/**
+	 * Returns the value of the '<em><b>Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data</em>' attribute.
+	 * @see #setData(Map)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosOtherProxEvent_Data()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Map<String, Object> getData();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent#getData <em>Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Data</em>' attribute.
+	 * @see #getData()
+	 * @generated
+	 */
+	void setData(Map<String, Object> value);
+
+} // IPosOtherProxEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosProximityEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosProximityEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..4852d0e402b79d4b034a26b701a77cf1bc9c7ff6
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosProximityEvent.java
@@ -0,0 +1,44 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos Proximity Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent#getTagId <em>Tag Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosProximityEvent()
+ * @model
+ * @generated
+ */
+public interface IPosProximityEvent extends IPosRawdataEvent {
+	/**
+	 * Returns the value of the '<em><b>Tag Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tag Id</em>' attribute.
+	 * @see #setTagId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosProximityEvent_TagId()
+	 * @model
+	 * @generated
+	 */
+	String getTagId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent#getTagId <em>Tag Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tag Id</em>' attribute.
+	 * @see #getTagId()
+	 * @generated
+	 */
+	void setTagId(String value);
+
+} // IPosProximityEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosRFIDEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosRFIDEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..cce14b001e5a34618dc55119162a64c117cd51c4
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosRFIDEvent.java
@@ -0,0 +1,44 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos RFID Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent#getLocation <em>Location</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosRFIDEvent()
+ * @model
+ * @generated
+ */
+public interface IPosRFIDEvent extends IPosProximityEvent {
+	/**
+	 * Returns the value of the '<em><b>Location</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Location</em>' attribute.
+	 * @see #setLocation(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosRFIDEvent_Location()
+	 * @model
+	 * @generated
+	 */
+	String getLocation();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent#getLocation <em>Location</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Location</em>' attribute.
+	 * @see #getLocation()
+	 * @generated
+	 */
+	void setLocation(String value);
+
+} // IPosRFIDEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosRawdataEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosRawdataEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..ea7ffb037e544f56ee1f82bd4c515c36b1428ec6
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosRawdataEvent.java
@@ -0,0 +1,138 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos Rawdata Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getAgentId <em>Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getSensorId <em>Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getAgentType <em>Agent Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getSensorType <em>Sensor Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getTimeStamp <em>Time Stamp</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosRawdataEvent()
+ * @model
+ * @generated
+ */
+public interface IPosRawdataEvent extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Agent Id</em>' attribute.
+	 * @see #setAgentId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosRawdataEvent_AgentId()
+	 * @model
+	 * @generated
+	 */
+	String getAgentId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getAgentId <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Agent Id</em>' attribute.
+	 * @see #getAgentId()
+	 * @generated
+	 */
+	void setAgentId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sensor Id</em>' attribute.
+	 * @see #setSensorId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosRawdataEvent_SensorId()
+	 * @model
+	 * @generated
+	 */
+	String getSensorId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getSensorId <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sensor Id</em>' attribute.
+	 * @see #getSensorId()
+	 * @generated
+	 */
+	void setSensorId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Agent Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Agent Type</em>' attribute.
+	 * @see #setAgentType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosRawdataEvent_AgentType()
+	 * @model
+	 * @generated
+	 */
+	String getAgentType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getAgentType <em>Agent Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Agent Type</em>' attribute.
+	 * @see #getAgentType()
+	 * @generated
+	 */
+	void setAgentType(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sensor Type</em>' attribute.
+	 * @see #setSensorType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosRawdataEvent_SensorType()
+	 * @model
+	 * @generated
+	 */
+	String getSensorType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getSensorType <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sensor Type</em>' attribute.
+	 * @see #getSensorType()
+	 * @generated
+	 */
+	void setSensorType(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time Stamp</em>' attribute.
+	 * @see #setTimeStamp(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosRawdataEvent_TimeStamp()
+	 * @model
+	 * @generated
+	 */
+	String getTimeStamp();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent#getTimeStamp <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time Stamp</em>' attribute.
+	 * @see #getTimeStamp()
+	 * @generated
+	 */
+	void setTimeStamp(String value);
+
+} // IPosRawdataEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosUWBEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosUWBEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..73e8498a9130f39da1e7a72c6f5d468149fbf28d
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IPosUWBEvent.java
@@ -0,0 +1,16 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IPos UWB Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIPosUWBEvent()
+ * @model
+ * @generated
+ */
+public interface IPosUWBEvent extends IPosBeaconEvent {
+} // IPosUWBEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposMsgRcvEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposMsgRcvEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..4d674be961ae030ce7b85ef041545d00b3d74b4f
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposMsgRcvEvent.java
@@ -0,0 +1,229 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Orientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.Position;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ipos Msg Rcv Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getProtocolName <em>Protocol Name</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getSerializedMsg <em>Serialized Msg</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastPosUpdate <em>Last Pos Update</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownPosition <em>Last Known Position</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownOrientation <em>Last Known Orientation</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownZonedescriptors <em>Last Known Zonedescriptors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getAgentId <em>Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getExtractedAttributes <em>Extracted Attributes</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getTimestamp <em>Timestamp</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent()
+ * @model
+ * @generated
+ */
+public interface IposMsgRcvEvent extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Protocol Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Protocol Name</em>' attribute.
+	 * @see #setProtocolName(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_ProtocolName()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getProtocolName();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getProtocolName <em>Protocol Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Protocol Name</em>' attribute.
+	 * @see #getProtocolName()
+	 * @generated
+	 */
+	void setProtocolName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Serialized Msg</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Serialized Msg</em>' attribute.
+	 * @see #setSerializedMsg(byte[])
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_SerializedMsg()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.ByteArray"
+	 * @generated
+	 */
+	byte[] getSerializedMsg();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getSerializedMsg <em>Serialized Msg</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Serialized Msg</em>' attribute.
+	 * @see #getSerializedMsg()
+	 * @generated
+	 */
+	void setSerializedMsg(byte[] value);
+
+	/**
+	 * Returns the value of the '<em><b>Last Pos Update</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Last Pos Update</em>' attribute.
+	 * @see #setLastPosUpdate(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_LastPosUpdate()
+	 * @model
+	 * @generated
+	 */
+	String getLastPosUpdate();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastPosUpdate <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Last Pos Update</em>' attribute.
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 */
+	void setLastPosUpdate(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Last Known Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Last Known Position</em>' reference.
+	 * @see #setLastKnownPosition(Position)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_LastKnownPosition()
+	 * @model
+	 * @generated
+	 */
+	Position getLastKnownPosition();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownPosition <em>Last Known Position</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Last Known Position</em>' reference.
+	 * @see #getLastKnownPosition()
+	 * @generated
+	 */
+	void setLastKnownPosition(Position value);
+
+	/**
+	 * Returns the value of the '<em><b>Last Known Orientation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Last Known Orientation</em>' reference.
+	 * @see #setLastKnownOrientation(Orientation)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_LastKnownOrientation()
+	 * @model
+	 * @generated
+	 */
+	Orientation getLastKnownOrientation();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getLastKnownOrientation <em>Last Known Orientation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Last Known Orientation</em>' reference.
+	 * @see #getLastKnownOrientation()
+	 * @generated
+	 */
+	void setLastKnownOrientation(Orientation value);
+
+	/**
+	 * Returns the value of the '<em><b>Last Known Zonedescriptors</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Last Known Zonedescriptors</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_LastKnownZonedescriptors()
+	 * @model
+	 * @generated
+	 */
+	EList<ZoneDescriptor> getLastKnownZonedescriptors();
+
+	/**
+	 * Returns the value of the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Agent Id</em>' attribute.
+	 * @see #setAgentId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_AgentId()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getAgentId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getAgentId <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Agent Id</em>' attribute.
+	 * @see #getAgentId()
+	 * @generated
+	 */
+	void setAgentId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Extracted Attributes</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Extracted Attributes</em>' attribute.
+	 * @see #setExtractedAttributes(LinkedList)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_ExtractedAttributes()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.ListOfStringMaps"
+	 * @generated
+	 */
+	LinkedList<HashMap<String, String>> getExtractedAttributes();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getExtractedAttributes <em>Extracted Attributes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Extracted Attributes</em>' attribute.
+	 * @see #getExtractedAttributes()
+	 * @generated
+	 */
+	void setExtractedAttributes(LinkedList<HashMap<String, String>> value);
+
+	/**
+	 * Returns the value of the '<em><b>Timestamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Timestamp</em>' attribute.
+	 * @see #setTimestamp(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposMsgRcvEvent_Timestamp()
+	 * @model
+	 * @generated
+	 */
+	String getTimestamp();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent#getTimestamp <em>Timestamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Timestamp</em>' attribute.
+	 * @see #getTimestamp()
+	 * @generated
+	 */
+	void setTimestamp(String value);
+
+} // IposMsgRcvEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposPositionEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposPositionEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..a3fa96f11a63bb4b92651c92d2d7f529049ee0bd
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/IposPositionEvent.java
@@ -0,0 +1,203 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Orientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.Position;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ipos Position Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getAgentId <em>Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getSensorId <em>Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getSensorType <em>Sensor Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getLastPosUpdate <em>Last Pos Update</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getPosition <em>Position</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getOrientation <em>Orientation</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getZoneDescriptors <em>Zone Descriptors</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposPositionEvent()
+ * @model
+ * @generated
+ */
+public interface IposPositionEvent extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Agent Id</em>' attribute.
+	 * @see #setAgentId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposPositionEvent_AgentId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getAgentId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getAgentId <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Agent Id</em>' attribute.
+	 * @see #getAgentId()
+	 * @generated
+	 */
+	void setAgentId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sensor Id</em>' attribute.
+	 * @see #setSensorId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposPositionEvent_SensorId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getSensorId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getSensorId <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sensor Id</em>' attribute.
+	 * @see #getSensorId()
+	 * @generated
+	 */
+	void setSensorId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposPositionEvent_Type()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sensor Type</em>' attribute.
+	 * @see #setSensorType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposPositionEvent_SensorType()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getSensorType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getSensorType <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sensor Type</em>' attribute.
+	 * @see #getSensorType()
+	 * @generated
+	 */
+	void setSensorType(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Last Pos Update</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Last Pos Update</em>' attribute.
+	 * @see #setLastPosUpdate(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposPositionEvent_LastPosUpdate()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getLastPosUpdate();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getLastPosUpdate <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Last Pos Update</em>' attribute.
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 */
+	void setLastPosUpdate(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Position</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Position</em>' reference.
+	 * @see #setPosition(Position)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposPositionEvent_Position()
+	 * @model required="true"
+	 * @generated
+	 */
+	Position getPosition();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getPosition <em>Position</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Position</em>' reference.
+	 * @see #getPosition()
+	 * @generated
+	 */
+	void setPosition(Position value);
+
+	/**
+	 * Returns the value of the '<em><b>Orientation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Orientation</em>' reference.
+	 * @see #setOrientation(Orientation)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposPositionEvent_Orientation()
+	 * @model required="true"
+	 * @generated
+	 */
+	Orientation getOrientation();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent#getOrientation <em>Orientation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Orientation</em>' reference.
+	 * @see #getOrientation()
+	 * @generated
+	 */
+	void setOrientation(Orientation value);
+
+	/**
+	 * Returns the value of the '<em><b>Zone Descriptors</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Zone Descriptors</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getIposPositionEvent_ZoneDescriptors()
+	 * @model
+	 * @generated
+	 */
+	EList<ZoneDescriptor> getZoneDescriptors();
+
+} // IposPositionEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/MonitoringRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/MonitoringRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5248044e6d183384bd3aaa64c6dd92cb43e4beac
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/MonitoringRequest.java
@@ -0,0 +1,301 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Monitoring Request</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getFrameIds <em>Frame Ids</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getDelta <em>Delta</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getUpdateFrequency <em>Update Frequency</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getId <em>Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getFusionStrategy <em>Fusion Strategy</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#isExitNotification <em>Exit Notification</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getProperties <em>Properties</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getMonitoringTaskId <em>Monitoring Task Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getRequestorProtocol <em>Requestor Protocol</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getSerializationType <em>Serialization Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getRefSystemId <em>Ref System Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest()
+ * @model
+ * @generated
+ */
+public interface MonitoringRequest extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Frame Ids</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Frame Ids</em>' attribute.
+	 * @see #setFrameIds(List)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_FrameIds()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.StringList"
+	 * @generated
+	 */
+	List<String> getFrameIds();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getFrameIds <em>Frame Ids</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Frame Ids</em>' attribute.
+	 * @see #getFrameIds()
+	 * @generated
+	 */
+	void setFrameIds(List<String> value);
+
+	/**
+	 * Returns the value of the '<em><b>Delta</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Delta</em>' attribute.
+	 * @see #setDelta(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_Delta()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.Float"
+	 * @generated
+	 */
+	float getDelta();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getDelta <em>Delta</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Delta</em>' attribute.
+	 * @see #getDelta()
+	 * @generated
+	 */
+	void setDelta(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Update Frequency</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Update Frequency</em>' attribute.
+	 * @see #setUpdateFrequency(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_UpdateFrequency()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.Float"
+	 * @generated
+	 */
+	float getUpdateFrequency();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getUpdateFrequency <em>Update Frequency</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Update Frequency</em>' attribute.
+	 * @see #getUpdateFrequency()
+	 * @generated
+	 */
+	void setUpdateFrequency(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(List)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_Type()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.StringList"
+	 * @generated
+	 */
+	List<String> getType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(List<String> value);
+
+	/**
+	 * Returns the value of the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Id</em>' attribute.
+	 * @see #setId(List)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_Id()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.StringList"
+	 * @generated
+	 */
+	List<String> getId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getId <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Id</em>' attribute.
+	 * @see #getId()
+	 * @generated
+	 */
+	void setId(List<String> value);
+
+	/**
+	 * Returns the value of the '<em><b>Fusion Strategy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fusion Strategy</em>' attribute.
+	 * @see #setFusionStrategy(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_FusionStrategy()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getFusionStrategy();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getFusionStrategy <em>Fusion Strategy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fusion Strategy</em>' attribute.
+	 * @see #getFusionStrategy()
+	 * @generated
+	 */
+	void setFusionStrategy(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Exit Notification</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Exit Notification</em>' attribute.
+	 * @see #setExitNotification(boolean)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_ExitNotification()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+	 * @generated
+	 */
+	boolean isExitNotification();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#isExitNotification <em>Exit Notification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Exit Notification</em>' attribute.
+	 * @see #isExitNotification()
+	 * @generated
+	 */
+	void setExitNotification(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Properties</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Properties</em>' attribute.
+	 * @see #setProperties(List)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_Properties()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.StringList"
+	 * @generated
+	 */
+	List<String> getProperties();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getProperties <em>Properties</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Properties</em>' attribute.
+	 * @see #getProperties()
+	 * @generated
+	 */
+	void setProperties(List<String> value);
+
+	/**
+	 * Returns the value of the '<em><b>Monitoring Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Monitoring Task Id</em>' attribute.
+	 * @see #setMonitoringTaskId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_MonitoringTaskId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getMonitoringTaskId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getMonitoringTaskId <em>Monitoring Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Monitoring Task Id</em>' attribute.
+	 * @see #getMonitoringTaskId()
+	 * @generated
+	 */
+	void setMonitoringTaskId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Requestor Protocol</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Requestor Protocol</em>' attribute.
+	 * @see #setRequestorProtocol(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_RequestorProtocol()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getRequestorProtocol();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getRequestorProtocol <em>Requestor Protocol</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Requestor Protocol</em>' attribute.
+	 * @see #getRequestorProtocol()
+	 * @generated
+	 */
+	void setRequestorProtocol(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Serialization Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Serialization Type</em>' attribute.
+	 * @see #setSerializationType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_SerializationType()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getSerializationType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getSerializationType <em>Serialization Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Serialization Type</em>' attribute.
+	 * @see #getSerializationType()
+	 * @generated
+	 */
+	void setSerializationType(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Ref System Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ref System Id</em>' attribute.
+	 * @see #setRefSystemId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getMonitoringRequest_RefSystemId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getRefSystemId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest#getRefSystemId <em>Ref System Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ref System Id</em>' attribute.
+	 * @see #getRefSystemId()
+	 * @generated
+	 */
+	void setRefSystemId(String value);
+
+} // MonitoringRequest
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/SensorConfigurationRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/SensorConfigurationRequest.java
similarity index 63%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/SensorConfigurationRequest.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/SensorConfigurationRequest.java
index cf5138e30ca0ff886f4927f44f4e810eda31f197..c70aba222a5410a80bc0a59e4def8e5dfd97105a 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/SensorConfigurationRequest.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/SensorConfigurationRequest.java
@@ -1,6 +1,6 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -10,7 +10,7 @@ import org.eclipse.emf.ecore.EObject;
  * <!-- end-user-doc -->
  *
  *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getSensorConfigurationRequest()
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getSensorConfigurationRequest()
  * @model
  * @generated
  */
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/TrackingRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/TrackingRequest.java
similarity index 61%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/TrackingRequest.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/TrackingRequest.java
index ccad25d217c8b5581aec8e23d6980485c11cf36d..17e64339013e251df89d98b093bb5603646b2196 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/TrackingRequest.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/TrackingRequest.java
@@ -1,6 +1,6 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -10,7 +10,7 @@ import org.eclipse.emf.ecore.EObject;
  * <!-- end-user-doc -->
  *
  *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getTrackingRequest()
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getTrackingRequest()
  * @model
  * @generated
  */
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModelQueryRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/WorldModelQueryRequest.java
similarity index 62%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModelQueryRequest.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/WorldModelQueryRequest.java
index ed30cdffbd34fd2ecaa0530df02909f57d6c09a5..ef3145bc053708f236a6e8e8a7a165b7d7530e8a 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModelQueryRequest.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/WorldModelQueryRequest.java
@@ -1,6 +1,6 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -10,7 +10,7 @@ import org.eclipse.emf.ecore.EObject;
  * <!-- end-user-doc -->
  *
  *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getWorldModelQueryRequest()
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getWorldModelQueryRequest()
  * @model
  * @generated
  */
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModelUpdateRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/WorldModelUpdateRequest.java
similarity index 62%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModelUpdateRequest.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/WorldModelUpdateRequest.java
index af3105797c20ad8e8870d47209f1281e90d67dee..b2deaef8bbdd54607a559491d7121a5f07b41da2 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModelUpdateRequest.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/WorldModelUpdateRequest.java
@@ -1,6 +1,6 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit;
 
 import org.eclipse.emf.ecore.EObject;
 
@@ -10,7 +10,7 @@ import org.eclipse.emf.ecore.EObject;
  * <!-- end-user-doc -->
  *
  *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getWorldModelUpdateRequest()
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#getWorldModelUpdateRequest()
  * @model
  * @generated
  */
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AgentRegistrationRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/AgentRegistrationRequestImpl.java
similarity index 68%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AgentRegistrationRequestImpl.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/AgentRegistrationRequestImpl.java
index 6cdd6b82f25de7ca5c31963dcc7d921409e7b3da..d310edb1040ac84c11ae8ba12f25a787b1b5577a 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AgentRegistrationRequestImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/AgentRegistrationRequestImpl.java
@@ -1,9 +1,9 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
 
-import ipos.project.DataModellntegration.iPos_Datamodel.AgentRegistrationRequest;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.AgentRegistrationRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
 
 import org.eclipse.emf.ecore.EClass;
 
@@ -33,7 +33,7 @@ public class AgentRegistrationRequestImpl extends MinimalEObjectImpl.Container i
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.AGENT_REGISTRATION_REQUEST;
+		return IPosDevKitPackage.Literals.AGENT_REGISTRATION_REQUEST;
 	}
 
 } //AgentRegistrationRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/DataStorageQueryRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/DataStorageQueryRequestImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..caab60af66b197b2ad32a5125bb68080e6c67c2e
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/DataStorageQueryRequestImpl.java
@@ -0,0 +1,166 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Storage Query Request</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.DataStorageQueryRequestImpl#getTrackingTaskId <em>Tracking Task Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DataStorageQueryRequestImpl extends MinimalEObjectImpl.Container implements DataStorageQueryRequest {
+	/**
+	 * The default value of the '{@link #getTrackingTaskId() <em>Tracking Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrackingTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TRACKING_TASK_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTrackingTaskId() <em>Tracking Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrackingTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String trackingTaskId = TRACKING_TASK_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataStorageQueryRequestImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.DATA_STORAGE_QUERY_REQUEST;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTrackingTaskId() {
+		return trackingTaskId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTrackingTaskId(String newTrackingTaskId) {
+		String oldTrackingTaskId = trackingTaskId;
+		trackingTaskId = newTrackingTaskId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.DATA_STORAGE_QUERY_REQUEST__TRACKING_TASK_ID, oldTrackingTaskId, trackingTaskId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.DATA_STORAGE_QUERY_REQUEST__TRACKING_TASK_ID:
+			return getTrackingTaskId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case IPosDevKitPackage.DATA_STORAGE_QUERY_REQUEST__TRACKING_TASK_ID:
+			setTrackingTaskId((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.DATA_STORAGE_QUERY_REQUEST__TRACKING_TASK_ID:
+			setTrackingTaskId(TRACKING_TASK_ID_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.DATA_STORAGE_QUERY_REQUEST__TRACKING_TASK_ID:
+			return TRACKING_TASK_ID_EDEFAULT == null ? trackingTaskId != null
+					: !TRACKING_TASK_ID_EDEFAULT.equals(trackingTaskId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (trackingTaskId: ");
+		result.append(trackingTaskId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataStorageQueryRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/DataStorageRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/DataStorageRequestImpl.java
similarity index 68%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/DataStorageRequestImpl.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/DataStorageRequestImpl.java
index 44f57587b40cc8d70e6682f8f0420f1522a29050..b121dee32f816fb5a94da391e8a1b15cca3dc063 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/DataStorageRequestImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/DataStorageRequestImpl.java
@@ -1,9 +1,9 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
 
-import ipos.project.DataModellntegration.iPos_Datamodel.DataStorageRequest;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
 
 import org.eclipse.emf.ecore.EClass;
 
@@ -33,7 +33,7 @@ public class DataStorageRequestImpl extends MinimalEObjectImpl.Container impleme
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.DATA_STORAGE_REQUEST;
+		return IPosDevKitPackage.Literals.DATA_STORAGE_REQUEST;
 	}
 
 } //DataStorageRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosBTEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosBTEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b6fb7506d79cd34f73c29218d6cb64409041e8a
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosBTEventImpl.java
@@ -0,0 +1,156 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos BT Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBTEventImpl#getRss <em>Rss</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IPosBTEventImpl extends IPosBeaconEventImpl implements IPosBTEvent {
+	/**
+	 * The cached value of the '{@link #getRss() <em>Rss</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRss()
+	 * @generated
+	 * @ordered
+	 */
+	protected Map<String, Double> rss;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosBTEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_BT_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Map<String, Double> getRss() {
+		return rss;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRss(Map<String, Double> newRss) {
+		Map<String, Double> oldRss = rss;
+		rss = newRss;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_BT_EVENT__RSS, oldRss, rss));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_BT_EVENT__RSS:
+			return getRss();
+		}
+		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 IPosDevKitPackage.IPOS_BT_EVENT__RSS:
+			setRss((Map<String, Double>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_BT_EVENT__RSS:
+			setRss((Map<String, Double>) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_BT_EVENT__RSS:
+			return rss != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (rss: ");
+		result.append(rss);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IPosBTEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosBarcodeEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosBarcodeEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..2f47046573f7cf7872d1d57520a4a6d77053c8f2
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosBarcodeEventImpl.java
@@ -0,0 +1,37 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBarcodeEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos Barcode Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IPosBarcodeEventImpl extends IPosProximityEventImpl implements IPosBarcodeEvent {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosBarcodeEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_BARCODE_EVENT;
+	}
+
+} //IPosBarcodeEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosBeaconEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosBeaconEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..eee7a3619587e8f6aa5c8f3ed4f367cc8f9274d9
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosBeaconEventImpl.java
@@ -0,0 +1,157 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos Beacon Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosBeaconEventImpl#getDistances <em>Distances</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IPosBeaconEventImpl extends IPosRawdataEventImpl implements IPosBeaconEvent {
+	/**
+	 * The cached value of the '{@link #getDistances() <em>Distances</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDistances()
+	 * @generated
+	 * @ordered
+	 */
+	protected Map<String, Double> distances;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosBeaconEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_BEACON_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Map<String, Double> getDistances() {
+		return distances;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDistances(Map<String, Double> newDistances) {
+		Map<String, Double> oldDistances = distances;
+		distances = newDistances;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_BEACON_EVENT__DISTANCES,
+					oldDistances, distances));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_BEACON_EVENT__DISTANCES:
+			return getDistances();
+		}
+		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 IPosDevKitPackage.IPOS_BEACON_EVENT__DISTANCES:
+			setDistances((Map<String, Double>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_BEACON_EVENT__DISTANCES:
+			setDistances((Map<String, Double>) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_BEACON_EVENT__DISTANCES:
+			return distances != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (distances: ");
+		result.append(distances);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IPosBeaconEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitFactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitFactoryImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..1690ad753a932276355c13a5bd409008641b1ede
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitFactoryImpl.java
@@ -0,0 +1,324 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IPosDevKitFactoryImpl extends EFactoryImpl implements IPosDevKitFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IPosDevKitFactory init() {
+		try {
+			IPosDevKitFactory theIPosDevKitFactory = (IPosDevKitFactory) EPackage.Registry.INSTANCE
+					.getEFactory(IPosDevKitPackage.eNS_URI);
+			if (theIPosDevKitFactory != null) {
+				return theIPosDevKitFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new IPosDevKitFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosDevKitFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case IPosDevKitPackage.TRACKING_REQUEST:
+			return createTrackingRequest();
+		case IPosDevKitPackage.MONITORING_REQUEST:
+			return createMonitoringRequest();
+		case IPosDevKitPackage.WORLD_MODEL_UPDATE_REQUEST:
+			return createWorldModelUpdateRequest();
+		case IPosDevKitPackage.DATA_STORAGE_REQUEST:
+			return createDataStorageRequest();
+		case IPosDevKitPackage.WORLD_MODEL_QUERY_REQUEST:
+			return createWorldModelQueryRequest();
+		case IPosDevKitPackage.DATA_STORAGE_QUERY_REQUEST:
+			return createDataStorageQueryRequest();
+		case IPosDevKitPackage.AGENT_REGISTRATION_REQUEST:
+			return createAgentRegistrationRequest();
+		case IPosDevKitPackage.SENSOR_CONFIGURATION_REQUEST:
+			return createSensorConfigurationRequest();
+		case IPosDevKitPackage.IPOS_POSITION_EVENT:
+			return createIposPositionEvent();
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT:
+			return createIPosRawdataEvent();
+		case IPosDevKitPackage.IPOS_BEACON_EVENT:
+			return createIPosBeaconEvent();
+		case IPosDevKitPackage.IPOS_UWB_EVENT:
+			return createIPosUWBEvent();
+		case IPosDevKitPackage.IPOS_BT_EVENT:
+			return createIPosBTEvent();
+		case IPosDevKitPackage.IPOS_PROXIMITY_EVENT:
+			return createIPosProximityEvent();
+		case IPosDevKitPackage.IPOS_NFC_EVENT:
+			return createIPosNFCEvent();
+		case IPosDevKitPackage.IPOS_BARCODE_EVENT:
+			return createIPosBarcodeEvent();
+		case IPosDevKitPackage.IPOS_RFID_EVENT:
+			return createIPosRFIDEvent();
+		case IPosDevKitPackage.IPOS_OTHER_PROX_EVENT:
+			return createIPosOtherProxEvent();
+		case IPosDevKitPackage.IPOS_OTHER_BEACON_EVENT:
+			return createIPosOtherBeaconEvent();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT:
+			return createIposMsgRcvEvent();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TrackingRequest createTrackingRequest() {
+		TrackingRequestImpl trackingRequest = new TrackingRequestImpl();
+		return trackingRequest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MonitoringRequest createMonitoringRequest() {
+		MonitoringRequestImpl monitoringRequest = new MonitoringRequestImpl();
+		return monitoringRequest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WorldModelUpdateRequest createWorldModelUpdateRequest() {
+		WorldModelUpdateRequestImpl worldModelUpdateRequest = new WorldModelUpdateRequestImpl();
+		return worldModelUpdateRequest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataStorageRequest createDataStorageRequest() {
+		DataStorageRequestImpl dataStorageRequest = new DataStorageRequestImpl();
+		return dataStorageRequest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WorldModelQueryRequest createWorldModelQueryRequest() {
+		WorldModelQueryRequestImpl worldModelQueryRequest = new WorldModelQueryRequestImpl();
+		return worldModelQueryRequest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataStorageQueryRequest createDataStorageQueryRequest() {
+		DataStorageQueryRequestImpl dataStorageQueryRequest = new DataStorageQueryRequestImpl();
+		return dataStorageQueryRequest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AgentRegistrationRequest createAgentRegistrationRequest() {
+		AgentRegistrationRequestImpl agentRegistrationRequest = new AgentRegistrationRequestImpl();
+		return agentRegistrationRequest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SensorConfigurationRequest createSensorConfigurationRequest() {
+		SensorConfigurationRequestImpl sensorConfigurationRequest = new SensorConfigurationRequestImpl();
+		return sensorConfigurationRequest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IposPositionEvent createIposPositionEvent() {
+		IposPositionEventImpl iposPositionEvent = new IposPositionEventImpl();
+		return iposPositionEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosRawdataEvent createIPosRawdataEvent() {
+		IPosRawdataEventImpl iPosRawdataEvent = new IPosRawdataEventImpl();
+		return iPosRawdataEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosBeaconEvent createIPosBeaconEvent() {
+		IPosBeaconEventImpl iPosBeaconEvent = new IPosBeaconEventImpl();
+		return iPosBeaconEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosUWBEvent createIPosUWBEvent() {
+		IPosUWBEventImpl iPosUWBEvent = new IPosUWBEventImpl();
+		return iPosUWBEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosBTEvent createIPosBTEvent() {
+		IPosBTEventImpl iPosBTEvent = new IPosBTEventImpl();
+		return iPosBTEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosProximityEvent createIPosProximityEvent() {
+		IPosProximityEventImpl iPosProximityEvent = new IPosProximityEventImpl();
+		return iPosProximityEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosNFCEvent createIPosNFCEvent() {
+		IPosNFCEventImpl iPosNFCEvent = new IPosNFCEventImpl();
+		return iPosNFCEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosBarcodeEvent createIPosBarcodeEvent() {
+		IPosBarcodeEventImpl iPosBarcodeEvent = new IPosBarcodeEventImpl();
+		return iPosBarcodeEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosRFIDEvent createIPosRFIDEvent() {
+		IPosRFIDEventImpl iPosRFIDEvent = new IPosRFIDEventImpl();
+		return iPosRFIDEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosOtherProxEvent createIPosOtherProxEvent() {
+		IPosOtherProxEventImpl iPosOtherProxEvent = new IPosOtherProxEventImpl();
+		return iPosOtherProxEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosOtherBeaconEvent createIPosOtherBeaconEvent() {
+		IPosOtherBeaconEventImpl iPosOtherBeaconEvent = new IPosOtherBeaconEventImpl();
+		return iPosOtherBeaconEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IposMsgRcvEvent createIposMsgRcvEvent() {
+		IposMsgRcvEventImpl iposMsgRcvEvent = new IposMsgRcvEventImpl();
+		return iposMsgRcvEvent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosDevKitPackage getIPosDevKitPackage() {
+		return (IPosDevKitPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static IPosDevKitPackage getPackage() {
+		return IPosDevKitPackage.eINSTANCE;
+	}
+
+} //IPosDevKitFactoryImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..df27f615cca95648ae5c9ea7e51a49d98cea41a3
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java
@@ -0,0 +1,1220 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.AgentRegistrationRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBarcodeEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.SensorConfigurationRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.TrackingRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelQueryRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelUpdateRequest;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IPosDevKitPackageImpl extends EPackageImpl implements IPosDevKitPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass trackingRequestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass monitoringRequestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass worldModelUpdateRequestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataStorageRequestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass worldModelQueryRequestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataStorageQueryRequestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass agentRegistrationRequestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sensorConfigurationRequestEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iposPositionEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosRawdataEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosBeaconEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosUWBEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosBTEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosProximityEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosNFCEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosBarcodeEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosRFIDEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosOtherProxEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iPosOtherBeaconEventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iposMsgRcvEventEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private IPosDevKitPackageImpl() {
+		super(eNS_URI, IPosDevKitFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link IPosDevKitPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static IPosDevKitPackage init() {
+		if (isInited)
+			return (IPosDevKitPackage) EPackage.Registry.INSTANCE.getEPackage(IPosDevKitPackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredIPosDevKitPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		IPosDevKitPackageImpl theIPosDevKitPackage = registeredIPosDevKitPackage instanceof IPosDevKitPackageImpl
+				? (IPosDevKitPackageImpl) registeredIPosDevKitPackage
+				: new IPosDevKitPackageImpl();
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		XMLTypePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPos_DatamodelPackage.eNS_URI);
+		IPos_DatamodelPackageImpl theIPos_DatamodelPackage = (IPos_DatamodelPackageImpl) (registeredPackage instanceof IPos_DatamodelPackageImpl
+				? registeredPackage
+				: IPos_DatamodelPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OFBizPackage.eNS_URI);
+		OFBizPackageImpl theOFBizPackage = (OFBizPackageImpl) (registeredPackage instanceof OFBizPackageImpl
+				? registeredPackage
+				: OFBizPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI);
+		ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl
+				? registeredPackage
+				: ToozPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI);
+		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
+				? registeredPackage
+				: VDA5050Package.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theIPosDevKitPackage.createPackageContents();
+		theIPos_DatamodelPackage.createPackageContents();
+		theOFBizPackage.createPackageContents();
+		theToozPackage.createPackageContents();
+		theVDA5050Package.createPackageContents();
+		theOSMPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theIPosDevKitPackage.initializePackageContents();
+		theIPos_DatamodelPackage.initializePackageContents();
+		theOFBizPackage.initializePackageContents();
+		theToozPackage.initializePackageContents();
+		theVDA5050Package.initializePackageContents();
+		theOSMPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theIPosDevKitPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(IPosDevKitPackage.eNS_URI, theIPosDevKitPackage);
+		return theIPosDevKitPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTrackingRequest() {
+		return trackingRequestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMonitoringRequest() {
+		return monitoringRequestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_FrameIds() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_Delta() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_UpdateFrequency() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_Type() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_Id() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_FusionStrategy() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_ExitNotification() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_Properties() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_MonitoringTaskId() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_RequestorProtocol() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_SerializationType() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringRequest_RefSystemId() {
+		return (EAttribute) monitoringRequestEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getWorldModelUpdateRequest() {
+		return worldModelUpdateRequestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataStorageRequest() {
+		return dataStorageRequestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getWorldModelQueryRequest() {
+		return worldModelQueryRequestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataStorageQueryRequest() {
+		return dataStorageQueryRequestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataStorageQueryRequest_TrackingTaskId() {
+		return (EAttribute) dataStorageQueryRequestEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAgentRegistrationRequest() {
+		return agentRegistrationRequestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSensorConfigurationRequest() {
+		return sensorConfigurationRequestEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIposPositionEvent() {
+		return iposPositionEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposPositionEvent_AgentId() {
+		return (EAttribute) iposPositionEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposPositionEvent_SensorId() {
+		return (EAttribute) iposPositionEventEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposPositionEvent_Type() {
+		return (EAttribute) iposPositionEventEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposPositionEvent_SensorType() {
+		return (EAttribute) iposPositionEventEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposPositionEvent_LastPosUpdate() {
+		return (EAttribute) iposPositionEventEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIposPositionEvent_Position() {
+		return (EReference) iposPositionEventEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIposPositionEvent_Orientation() {
+		return (EReference) iposPositionEventEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIposPositionEvent_ZoneDescriptors() {
+		return (EReference) iposPositionEventEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosRawdataEvent() {
+		return iPosRawdataEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosRawdataEvent_AgentId() {
+		return (EAttribute) iPosRawdataEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosRawdataEvent_SensorId() {
+		return (EAttribute) iPosRawdataEventEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosRawdataEvent_AgentType() {
+		return (EAttribute) iPosRawdataEventEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosRawdataEvent_SensorType() {
+		return (EAttribute) iPosRawdataEventEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosRawdataEvent_TimeStamp() {
+		return (EAttribute) iPosRawdataEventEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosBeaconEvent() {
+		return iPosBeaconEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosBeaconEvent_Distances() {
+		return (EAttribute) iPosBeaconEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosUWBEvent() {
+		return iPosUWBEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosBTEvent() {
+		return iPosBTEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosBTEvent_Rss() {
+		return (EAttribute) iPosBTEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosProximityEvent() {
+		return iPosProximityEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosProximityEvent_TagId() {
+		return (EAttribute) iPosProximityEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosNFCEvent() {
+		return iPosNFCEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosNFCEvent_TagData() {
+		return (EAttribute) iPosNFCEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosBarcodeEvent() {
+		return iPosBarcodeEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosRFIDEvent() {
+		return iPosRFIDEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosRFIDEvent_Location() {
+		return (EAttribute) iPosRFIDEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosOtherProxEvent() {
+		return iPosOtherProxEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosOtherProxEvent_Data() {
+		return (EAttribute) iPosOtherProxEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIPosOtherBeaconEvent() {
+		return iPosOtherBeaconEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIPosOtherBeaconEvent_Data() {
+		return (EAttribute) iPosOtherBeaconEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIposMsgRcvEvent() {
+		return iposMsgRcvEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposMsgRcvEvent_ProtocolName() {
+		return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposMsgRcvEvent_SerializedMsg() {
+		return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposMsgRcvEvent_LastPosUpdate() {
+		return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIposMsgRcvEvent_LastKnownPosition() {
+		return (EReference) iposMsgRcvEventEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIposMsgRcvEvent_LastKnownOrientation() {
+		return (EReference) iposMsgRcvEventEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIposMsgRcvEvent_LastKnownZonedescriptors() {
+		return (EReference) iposMsgRcvEventEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposMsgRcvEvent_AgentId() {
+		return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposMsgRcvEvent_ExtractedAttributes() {
+		return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIposMsgRcvEvent_Timestamp() {
+		return (EAttribute) iposMsgRcvEventEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosDevKitFactory getIPosDevKitFactory() {
+		return (IPosDevKitFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		trackingRequestEClass = createEClass(TRACKING_REQUEST);
+
+		monitoringRequestEClass = createEClass(MONITORING_REQUEST);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__FRAME_IDS);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__DELTA);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__UPDATE_FREQUENCY);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__TYPE);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__ID);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__FUSION_STRATEGY);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__EXIT_NOTIFICATION);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__PROPERTIES);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__MONITORING_TASK_ID);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__REQUESTOR_PROTOCOL);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__SERIALIZATION_TYPE);
+		createEAttribute(monitoringRequestEClass, MONITORING_REQUEST__REF_SYSTEM_ID);
+
+		worldModelUpdateRequestEClass = createEClass(WORLD_MODEL_UPDATE_REQUEST);
+
+		dataStorageRequestEClass = createEClass(DATA_STORAGE_REQUEST);
+
+		worldModelQueryRequestEClass = createEClass(WORLD_MODEL_QUERY_REQUEST);
+
+		dataStorageQueryRequestEClass = createEClass(DATA_STORAGE_QUERY_REQUEST);
+		createEAttribute(dataStorageQueryRequestEClass, DATA_STORAGE_QUERY_REQUEST__TRACKING_TASK_ID);
+
+		agentRegistrationRequestEClass = createEClass(AGENT_REGISTRATION_REQUEST);
+
+		sensorConfigurationRequestEClass = createEClass(SENSOR_CONFIGURATION_REQUEST);
+
+		iposPositionEventEClass = createEClass(IPOS_POSITION_EVENT);
+		createEAttribute(iposPositionEventEClass, IPOS_POSITION_EVENT__AGENT_ID);
+		createEAttribute(iposPositionEventEClass, IPOS_POSITION_EVENT__SENSOR_ID);
+		createEAttribute(iposPositionEventEClass, IPOS_POSITION_EVENT__TYPE);
+		createEAttribute(iposPositionEventEClass, IPOS_POSITION_EVENT__SENSOR_TYPE);
+		createEAttribute(iposPositionEventEClass, IPOS_POSITION_EVENT__LAST_POS_UPDATE);
+		createEReference(iposPositionEventEClass, IPOS_POSITION_EVENT__POSITION);
+		createEReference(iposPositionEventEClass, IPOS_POSITION_EVENT__ORIENTATION);
+		createEReference(iposPositionEventEClass, IPOS_POSITION_EVENT__ZONE_DESCRIPTORS);
+
+		iPosRawdataEventEClass = createEClass(IPOS_RAWDATA_EVENT);
+		createEAttribute(iPosRawdataEventEClass, IPOS_RAWDATA_EVENT__AGENT_ID);
+		createEAttribute(iPosRawdataEventEClass, IPOS_RAWDATA_EVENT__SENSOR_ID);
+		createEAttribute(iPosRawdataEventEClass, IPOS_RAWDATA_EVENT__AGENT_TYPE);
+		createEAttribute(iPosRawdataEventEClass, IPOS_RAWDATA_EVENT__SENSOR_TYPE);
+		createEAttribute(iPosRawdataEventEClass, IPOS_RAWDATA_EVENT__TIME_STAMP);
+
+		iPosBeaconEventEClass = createEClass(IPOS_BEACON_EVENT);
+		createEAttribute(iPosBeaconEventEClass, IPOS_BEACON_EVENT__DISTANCES);
+
+		iPosUWBEventEClass = createEClass(IPOS_UWB_EVENT);
+
+		iPosBTEventEClass = createEClass(IPOS_BT_EVENT);
+		createEAttribute(iPosBTEventEClass, IPOS_BT_EVENT__RSS);
+
+		iPosProximityEventEClass = createEClass(IPOS_PROXIMITY_EVENT);
+		createEAttribute(iPosProximityEventEClass, IPOS_PROXIMITY_EVENT__TAG_ID);
+
+		iPosNFCEventEClass = createEClass(IPOS_NFC_EVENT);
+		createEAttribute(iPosNFCEventEClass, IPOS_NFC_EVENT__TAG_DATA);
+
+		iPosBarcodeEventEClass = createEClass(IPOS_BARCODE_EVENT);
+
+		iPosRFIDEventEClass = createEClass(IPOS_RFID_EVENT);
+		createEAttribute(iPosRFIDEventEClass, IPOS_RFID_EVENT__LOCATION);
+
+		iPosOtherProxEventEClass = createEClass(IPOS_OTHER_PROX_EVENT);
+		createEAttribute(iPosOtherProxEventEClass, IPOS_OTHER_PROX_EVENT__DATA);
+
+		iPosOtherBeaconEventEClass = createEClass(IPOS_OTHER_BEACON_EVENT);
+		createEAttribute(iPosOtherBeaconEventEClass, IPOS_OTHER_BEACON_EVENT__DATA);
+
+		iposMsgRcvEventEClass = createEClass(IPOS_MSG_RCV_EVENT);
+		createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__PROTOCOL_NAME);
+		createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__SERIALIZED_MSG);
+		createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE);
+		createEReference(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION);
+		createEReference(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION);
+		createEReference(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS);
+		createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__AGENT_ID);
+		createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES);
+		createEAttribute(iposMsgRcvEventEClass, IPOS_MSG_RCV_EVENT__TIMESTAMP);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		IPos_DatamodelPackage theIPos_DatamodelPackage = (IPos_DatamodelPackage) EPackage.Registry.INSTANCE
+				.getEPackage(IPos_DatamodelPackage.eNS_URI);
+		XMLTypePackage theXMLTypePackage = (XMLTypePackage) EPackage.Registry.INSTANCE
+				.getEPackage(XMLTypePackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		iPosBeaconEventEClass.getESuperTypes().add(this.getIPosRawdataEvent());
+		iPosUWBEventEClass.getESuperTypes().add(this.getIPosBeaconEvent());
+		iPosBTEventEClass.getESuperTypes().add(this.getIPosBeaconEvent());
+		iPosProximityEventEClass.getESuperTypes().add(this.getIPosRawdataEvent());
+		iPosNFCEventEClass.getESuperTypes().add(this.getIPosProximityEvent());
+		iPosBarcodeEventEClass.getESuperTypes().add(this.getIPosProximityEvent());
+		iPosRFIDEventEClass.getESuperTypes().add(this.getIPosProximityEvent());
+		iPosOtherProxEventEClass.getESuperTypes().add(this.getIPosProximityEvent());
+		iPosOtherBeaconEventEClass.getESuperTypes().add(this.getIPosBeaconEvent());
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(trackingRequestEClass, TrackingRequest.class, "TrackingRequest", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(monitoringRequestEClass, MonitoringRequest.class, "MonitoringRequest", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getMonitoringRequest_FrameIds(), theIPos_DatamodelPackage.getStringList(), "frameIds", null, 0,
+				1, MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_Delta(), theXMLTypePackage.getFloat(), "delta", null, 0, 1,
+				MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_UpdateFrequency(), theXMLTypePackage.getFloat(), "updateFrequency", null, 0,
+				1, MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_Type(), theIPos_DatamodelPackage.getStringList(), "type", null, 0, 1,
+				MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_Id(), theIPos_DatamodelPackage.getStringList(), "id", null, 0, 1,
+				MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_FusionStrategy(), theXMLTypePackage.getString(), "fusionStrategy", null, 0,
+				1, MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_ExitNotification(), theXMLTypePackage.getBoolean(), "exitNotification",
+				null, 0, 1, MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_Properties(), theIPos_DatamodelPackage.getStringList(), "properties", null,
+				0, 1, MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_MonitoringTaskId(), theXMLTypePackage.getString(), "monitoringTaskId", null,
+				0, 1, MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_RequestorProtocol(), theXMLTypePackage.getString(), "requestorProtocol",
+				null, 0, 1, MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_SerializationType(), theXMLTypePackage.getString(), "serializationType",
+				null, 0, 1, MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMonitoringRequest_RefSystemId(), theXMLTypePackage.getString(), "refSystemId", null, 0, 1,
+				MonitoringRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(worldModelUpdateRequestEClass, WorldModelUpdateRequest.class, "WorldModelUpdateRequest",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(dataStorageRequestEClass, DataStorageRequest.class, "DataStorageRequest", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(worldModelQueryRequestEClass, WorldModelQueryRequest.class, "WorldModelQueryRequest", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(dataStorageQueryRequestEClass, DataStorageQueryRequest.class, "DataStorageQueryRequest",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDataStorageQueryRequest_TrackingTaskId(), theXMLTypePackage.getString(), "trackingTaskId",
+				null, 0, 1, DataStorageQueryRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+				!IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(agentRegistrationRequestEClass, AgentRegistrationRequest.class, "AgentRegistrationRequest",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(sensorConfigurationRequestEClass, SensorConfigurationRequest.class, "SensorConfigurationRequest",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(iposPositionEventEClass, IposPositionEvent.class, "IposPositionEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getIposPositionEvent_AgentId(), theXMLTypePackage.getString(), "agentId", null, 0, 1,
+				IposPositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIposPositionEvent_SensorId(), theXMLTypePackage.getString(), "sensorId", null, 0, 1,
+				IposPositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIposPositionEvent_Type(), theXMLTypePackage.getString(), "type", null, 0, 1,
+				IposPositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIposPositionEvent_SensorType(), theXMLTypePackage.getString(), "sensorType", null, 0, 1,
+				IposPositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIposPositionEvent_LastPosUpdate(), theXMLTypePackage.getString(), "lastPosUpdate", null, 0, 1,
+				IposPositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEReference(getIposPositionEvent_Position(), theIPos_DatamodelPackage.getPosition(), null, "position", null,
+				1, 1, IposPositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+				IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getIposPositionEvent_Orientation(), theIPos_DatamodelPackage.getOrientation(), null,
+				"orientation", null, 1, 1, IposPositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getIposPositionEvent_ZoneDescriptors(), theIPos_DatamodelPackage.getZoneDescriptor(), null,
+				"zoneDescriptors", null, 0, -1, IposPositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(iPosRawdataEventEClass, IPosRawdataEvent.class, "IPosRawdataEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getIPosRawdataEvent_AgentId(), ecorePackage.getEString(), "agentId", null, 0, 1,
+				IPosRawdataEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIPosRawdataEvent_SensorId(), ecorePackage.getEString(), "sensorId", null, 0, 1,
+				IPosRawdataEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIPosRawdataEvent_AgentType(), ecorePackage.getEString(), "agentType", null, 0, 1,
+				IPosRawdataEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIPosRawdataEvent_SensorType(), ecorePackage.getEString(), "sensorType", null, 0, 1,
+				IPosRawdataEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIPosRawdataEvent_TimeStamp(), ecorePackage.getEString(), "timeStamp", null, 0, 1,
+				IPosRawdataEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(iPosBeaconEventEClass, IPosBeaconEvent.class, "IPosBeaconEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		EGenericType g1 = createEGenericType(ecorePackage.getEMap());
+		EGenericType g2 = createEGenericType(theXMLTypePackage.getString());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(theXMLTypePackage.getDoubleObject());
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getIPosBeaconEvent_Distances(), g1, "distances", null, 0, 1, IPosBeaconEvent.class, IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(iPosUWBEventEClass, IPosUWBEvent.class, "IPosUWBEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(iPosBTEventEClass, IPosBTEvent.class, "IPosBTEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(theXMLTypePackage.getDoubleObject());
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getIPosBTEvent_Rss(), g1, "rss", null, 0, 1, IPosBTEvent.class, IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(iPosProximityEventEClass, IPosProximityEvent.class, "IPosProximityEvent", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getIPosProximityEvent_TagId(), ecorePackage.getEString(), "tagId", null, 0, 1,
+				IPosProximityEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(iPosNFCEventEClass, IPosNFCEvent.class, "IPosNFCEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getIPosNFCEvent_TagData(), g1, "tagData", null, 0, 1, IPosNFCEvent.class, IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(iPosBarcodeEventEClass, IPosBarcodeEvent.class, "IPosBarcodeEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(iPosRFIDEventEClass, IPosRFIDEvent.class, "IPosRFIDEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getIPosRFIDEvent_Location(), ecorePackage.getEString(), "location", null, 0, 1,
+				IPosRFIDEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(iPosOtherProxEventEClass, IPosOtherProxEvent.class, "IPosOtherProxEvent", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getIPosOtherProxEvent_Data(), g1, "data", null, 0, 1, IPosOtherProxEvent.class, IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(iPosOtherBeaconEventEClass, IPosOtherBeaconEvent.class, "IPosOtherBeaconEvent", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getIPosOtherBeaconEvent_Data(), g1, "data", null, 0, 1, IPosOtherBeaconEvent.class, IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(iposMsgRcvEventEClass, IposMsgRcvEvent.class, "IposMsgRcvEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getIposMsgRcvEvent_ProtocolName(), ecorePackage.getEString(), "protocolName", null, 1, 1,
+				IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIposMsgRcvEvent_SerializedMsg(), theIPos_DatamodelPackage.getByteArray(), "serializedMsg",
+				null, 0, 1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIposMsgRcvEvent_LastPosUpdate(), ecorePackage.getEString(), "lastPosUpdate", null, 0, 1,
+				IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEReference(getIposMsgRcvEvent_LastKnownPosition(), theIPos_DatamodelPackage.getPosition(), null,
+				"lastKnownPosition", null, 0, 1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getIposMsgRcvEvent_LastKnownOrientation(), theIPos_DatamodelPackage.getOrientation(), null,
+				"lastKnownOrientation", null, 0, 1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getIposMsgRcvEvent_LastKnownZonedescriptors(), theIPos_DatamodelPackage.getZoneDescriptor(),
+				null, "lastKnownZonedescriptors", null, 0, -1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIposMsgRcvEvent_AgentId(), ecorePackage.getEString(), "agentId", null, 1, 1,
+				IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIposMsgRcvEvent_ExtractedAttributes(), theIPos_DatamodelPackage.getListOfStringMaps(),
+				"extractedAttributes", null, 0, 1, IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getIposMsgRcvEvent_Timestamp(), ecorePackage.getEString(), "timestamp", null, 0, 1,
+				IposMsgRcvEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+	}
+
+} //IPosDevKitPackageImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosNFCEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosNFCEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..894229eebc4453f06007f96651cb11866b0f1601
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosNFCEventImpl.java
@@ -0,0 +1,157 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos NFC Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosNFCEventImpl#getTagData <em>Tag Data</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IPosNFCEventImpl extends IPosProximityEventImpl implements IPosNFCEvent {
+	/**
+	 * The cached value of the '{@link #getTagData() <em>Tag Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTagData()
+	 * @generated
+	 * @ordered
+	 */
+	protected Map<String, Object> tagData;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosNFCEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_NFC_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Map<String, Object> getTagData() {
+		return tagData;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTagData(Map<String, Object> newTagData) {
+		Map<String, Object> oldTagData = tagData;
+		tagData = newTagData;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_NFC_EVENT__TAG_DATA,
+					oldTagData, tagData));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_NFC_EVENT__TAG_DATA:
+			return getTagData();
+		}
+		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 IPosDevKitPackage.IPOS_NFC_EVENT__TAG_DATA:
+			setTagData((Map<String, Object>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_NFC_EVENT__TAG_DATA:
+			setTagData((Map<String, Object>) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_NFC_EVENT__TAG_DATA:
+			return tagData != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (tagData: ");
+		result.append(tagData);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IPosNFCEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosOtherBeaconEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosOtherBeaconEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..6876c379a9d753e904fc94e8d7479b3f3747f7a7
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosOtherBeaconEventImpl.java
@@ -0,0 +1,157 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos Other Beacon Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherBeaconEventImpl#getData <em>Data</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IPosOtherBeaconEventImpl extends IPosBeaconEventImpl implements IPosOtherBeaconEvent {
+	/**
+	 * The cached value of the '{@link #getData() <em>Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getData()
+	 * @generated
+	 * @ordered
+	 */
+	protected Map<String, Object> data;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosOtherBeaconEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_OTHER_BEACON_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Map<String, Object> getData() {
+		return data;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setData(Map<String, Object> newData) {
+		Map<String, Object> oldData = data;
+		data = newData;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_OTHER_BEACON_EVENT__DATA,
+					oldData, data));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_OTHER_BEACON_EVENT__DATA:
+			return getData();
+		}
+		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 IPosDevKitPackage.IPOS_OTHER_BEACON_EVENT__DATA:
+			setData((Map<String, Object>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_OTHER_BEACON_EVENT__DATA:
+			setData((Map<String, Object>) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_OTHER_BEACON_EVENT__DATA:
+			return data != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (data: ");
+		result.append(data);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IPosOtherBeaconEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosOtherProxEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosOtherProxEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..9fb9b1f46980ad3ee80c35b79a1c2eb5a2f0f22c
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosOtherProxEventImpl.java
@@ -0,0 +1,157 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos Other Prox Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosOtherProxEventImpl#getData <em>Data</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IPosOtherProxEventImpl extends IPosProximityEventImpl implements IPosOtherProxEvent {
+	/**
+	 * The cached value of the '{@link #getData() <em>Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getData()
+	 * @generated
+	 * @ordered
+	 */
+	protected Map<String, Object> data;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosOtherProxEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_OTHER_PROX_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Map<String, Object> getData() {
+		return data;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setData(Map<String, Object> newData) {
+		Map<String, Object> oldData = data;
+		data = newData;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_OTHER_PROX_EVENT__DATA,
+					oldData, data));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_OTHER_PROX_EVENT__DATA:
+			return getData();
+		}
+		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 IPosDevKitPackage.IPOS_OTHER_PROX_EVENT__DATA:
+			setData((Map<String, Object>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_OTHER_PROX_EVENT__DATA:
+			setData((Map<String, Object>) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_OTHER_PROX_EVENT__DATA:
+			return data != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (data: ");
+		result.append(data);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IPosOtherProxEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosProximityEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosProximityEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..12183b29b0f9bb38be7b64864f95a648646f607a
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosProximityEventImpl.java
@@ -0,0 +1,164 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos Proximity Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosProximityEventImpl#getTagId <em>Tag Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IPosProximityEventImpl extends IPosRawdataEventImpl implements IPosProximityEvent {
+	/**
+	 * The default value of the '{@link #getTagId() <em>Tag Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTagId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TAG_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTagId() <em>Tag Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTagId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String tagId = TAG_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosProximityEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_PROXIMITY_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTagId() {
+		return tagId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTagId(String newTagId) {
+		String oldTagId = tagId;
+		tagId = newTagId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_PROXIMITY_EVENT__TAG_ID,
+					oldTagId, tagId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_PROXIMITY_EVENT__TAG_ID:
+			return getTagId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_PROXIMITY_EVENT__TAG_ID:
+			setTagId((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_PROXIMITY_EVENT__TAG_ID:
+			setTagId(TAG_ID_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_PROXIMITY_EVENT__TAG_ID:
+			return TAG_ID_EDEFAULT == null ? tagId != null : !TAG_ID_EDEFAULT.equals(tagId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (tagId: ");
+		result.append(tagId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IPosProximityEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosRFIDEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosRFIDEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..24f0dffcf57580bba53093c0290736ab4a2d48a8
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosRFIDEventImpl.java
@@ -0,0 +1,164 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos RFID Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRFIDEventImpl#getLocation <em>Location</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IPosRFIDEventImpl extends IPosProximityEventImpl implements IPosRFIDEvent {
+	/**
+	 * The default value of the '{@link #getLocation() <em>Location</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LOCATION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLocation() <em>Location</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocation()
+	 * @generated
+	 * @ordered
+	 */
+	protected String location = LOCATION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosRFIDEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_RFID_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLocation() {
+		return location;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLocation(String newLocation) {
+		String oldLocation = location;
+		location = newLocation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_RFID_EVENT__LOCATION,
+					oldLocation, location));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_RFID_EVENT__LOCATION:
+			return getLocation();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_RFID_EVENT__LOCATION:
+			setLocation((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_RFID_EVENT__LOCATION:
+			setLocation(LOCATION_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_RFID_EVENT__LOCATION:
+			return LOCATION_EDEFAULT == null ? location != null : !LOCATION_EDEFAULT.equals(location);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (location: ");
+		result.append(location);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IPosRFIDEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosRawdataEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosRawdataEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..b16ba073edebfde15834ebe04e55e223c3b17b03
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosRawdataEventImpl.java
@@ -0,0 +1,385 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos Rawdata Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRawdataEventImpl#getAgentId <em>Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRawdataEventImpl#getSensorId <em>Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRawdataEventImpl#getAgentType <em>Agent Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRawdataEventImpl#getSensorType <em>Sensor Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosRawdataEventImpl#getTimeStamp <em>Time Stamp</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IPosRawdataEventImpl extends MinimalEObjectImpl.Container implements IPosRawdataEvent {
+	/**
+	 * The default value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AGENT_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String agentId = AGENT_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorId = SENSOR_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAgentType() <em>Agent Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AGENT_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAgentType() <em>Agent Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String agentType = AGENT_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorType = SENSOR_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimeStamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TIME_STAMP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimeStamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected String timeStamp = TIME_STAMP_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosRawdataEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_RAWDATA_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAgentId() {
+		return agentId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAgentId(String newAgentId) {
+		String oldAgentId = agentId;
+		agentId = newAgentId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_ID,
+					oldAgentId, agentId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorId() {
+		return sensorId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorId(String newSensorId) {
+		String oldSensorId = sensorId;
+		sensorId = newSensorId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_ID,
+					oldSensorId, sensorId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAgentType() {
+		return agentType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAgentType(String newAgentType) {
+		String oldAgentType = agentType;
+		agentType = newAgentType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_TYPE,
+					oldAgentType, agentType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorType() {
+		return sensorType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorType(String newSensorType) {
+		String oldSensorType = sensorType;
+		sensorType = newSensorType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_TYPE,
+					oldSensorType, sensorType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTimeStamp() {
+		return timeStamp;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTimeStamp(String newTimeStamp) {
+		String oldTimeStamp = timeStamp;
+		timeStamp = newTimeStamp;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_RAWDATA_EVENT__TIME_STAMP,
+					oldTimeStamp, timeStamp));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_ID:
+			return getAgentId();
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_ID:
+			return getSensorId();
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_TYPE:
+			return getAgentType();
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_TYPE:
+			return getSensorType();
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__TIME_STAMP:
+			return getTimeStamp();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_ID:
+			setAgentId((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_ID:
+			setSensorId((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_TYPE:
+			setAgentType((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_TYPE:
+			setSensorType((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__TIME_STAMP:
+			setTimeStamp((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_ID:
+			setAgentId(AGENT_ID_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_ID:
+			setSensorId(SENSOR_ID_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_TYPE:
+			setAgentType(AGENT_TYPE_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_TYPE:
+			setSensorType(SENSOR_TYPE_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__TIME_STAMP:
+			setTimeStamp(TIME_STAMP_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_ID:
+			return AGENT_ID_EDEFAULT == null ? agentId != null : !AGENT_ID_EDEFAULT.equals(agentId);
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_ID:
+			return SENSOR_ID_EDEFAULT == null ? sensorId != null : !SENSOR_ID_EDEFAULT.equals(sensorId);
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__AGENT_TYPE:
+			return AGENT_TYPE_EDEFAULT == null ? agentType != null : !AGENT_TYPE_EDEFAULT.equals(agentType);
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__SENSOR_TYPE:
+			return SENSOR_TYPE_EDEFAULT == null ? sensorType != null : !SENSOR_TYPE_EDEFAULT.equals(sensorType);
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT__TIME_STAMP:
+			return TIME_STAMP_EDEFAULT == null ? timeStamp != null : !TIME_STAMP_EDEFAULT.equals(timeStamp);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (agentId: ");
+		result.append(agentId);
+		result.append(", sensorId: ");
+		result.append(sensorId);
+		result.append(", agentType: ");
+		result.append(agentType);
+		result.append(", sensorType: ");
+		result.append(sensorType);
+		result.append(", timeStamp: ");
+		result.append(timeStamp);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IPosRawdataEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosUWBEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosUWBEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..a55e3ae9e44e4ab7b15f5ccda1f689680ddad4ac
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosUWBEventImpl.java
@@ -0,0 +1,37 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>IPos UWB Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IPosUWBEventImpl extends IPosBeaconEventImpl implements IPosUWBEvent {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosUWBEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_UWB_EVENT;
+	}
+
+} //IPosUWBEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposMsgRcvEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposMsgRcvEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..b5a9fd00f5eba0a1e7d62ba4a3c0c35b74b339dc
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposMsgRcvEventImpl.java
@@ -0,0 +1,623 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Orientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.Position;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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 org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ipos Msg Rcv Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getProtocolName <em>Protocol Name</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getSerializedMsg <em>Serialized Msg</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getLastPosUpdate <em>Last Pos Update</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getLastKnownPosition <em>Last Known Position</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getLastKnownOrientation <em>Last Known Orientation</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getLastKnownZonedescriptors <em>Last Known Zonedescriptors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getAgentId <em>Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getExtractedAttributes <em>Extracted Attributes</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposMsgRcvEventImpl#getTimestamp <em>Timestamp</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IposMsgRcvEventImpl extends MinimalEObjectImpl.Container implements IposMsgRcvEvent {
+	/**
+	 * The default value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProtocolName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROTOCOL_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProtocolName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String protocolName = PROTOCOL_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSerializedMsg() <em>Serialized Msg</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSerializedMsg()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final byte[] SERIALIZED_MSG_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSerializedMsg() <em>Serialized Msg</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSerializedMsg()
+	 * @generated
+	 * @ordered
+	 */
+	protected byte[] serializedMsg = SERIALIZED_MSG_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LAST_POS_UPDATE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected String lastPosUpdate = LAST_POS_UPDATE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getLastKnownPosition() <em>Last Known Position</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastKnownPosition()
+	 * @generated
+	 * @ordered
+	 */
+	protected Position lastKnownPosition;
+
+	/**
+	 * The cached value of the '{@link #getLastKnownOrientation() <em>Last Known Orientation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastKnownOrientation()
+	 * @generated
+	 * @ordered
+	 */
+	protected Orientation lastKnownOrientation;
+
+	/**
+	 * The cached value of the '{@link #getLastKnownZonedescriptors() <em>Last Known Zonedescriptors</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastKnownZonedescriptors()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ZoneDescriptor> lastKnownZonedescriptors;
+
+	/**
+	 * The default value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AGENT_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String agentId = AGENT_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExtractedAttributes() <em>Extracted Attributes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExtractedAttributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final LinkedList<HashMap<String, String>> EXTRACTED_ATTRIBUTES_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getExtractedAttributes() <em>Extracted Attributes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExtractedAttributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected LinkedList<HashMap<String, String>> extractedAttributes = EXTRACTED_ATTRIBUTES_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimestamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TIMESTAMP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimestamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected String timestamp = TIMESTAMP_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IposMsgRcvEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_MSG_RCV_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getProtocolName() {
+		return protocolName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProtocolName(String newProtocolName) {
+		String oldProtocolName = protocolName;
+		protocolName = newProtocolName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME,
+					oldProtocolName, protocolName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public byte[] getSerializedMsg() {
+		return serializedMsg;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSerializedMsg(byte[] newSerializedMsg) {
+		byte[] oldSerializedMsg = serializedMsg;
+		serializedMsg = newSerializedMsg;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG,
+					oldSerializedMsg, serializedMsg));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLastPosUpdate() {
+		return lastPosUpdate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLastPosUpdate(String newLastPosUpdate) {
+		String oldLastPosUpdate = lastPosUpdate;
+		lastPosUpdate = newLastPosUpdate;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE,
+					oldLastPosUpdate, lastPosUpdate));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position getLastKnownPosition() {
+		if (lastKnownPosition != null && lastKnownPosition.eIsProxy()) {
+			InternalEObject oldLastKnownPosition = (InternalEObject) lastKnownPosition;
+			lastKnownPosition = (Position) eResolveProxy(oldLastKnownPosition);
+			if (lastKnownPosition != oldLastKnownPosition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION, oldLastKnownPosition,
+							lastKnownPosition));
+			}
+		}
+		return lastKnownPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position basicGetLastKnownPosition() {
+		return lastKnownPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLastKnownPosition(Position newLastKnownPosition) {
+		Position oldLastKnownPosition = lastKnownPosition;
+		lastKnownPosition = newLastKnownPosition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION, oldLastKnownPosition,
+					lastKnownPosition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Orientation getLastKnownOrientation() {
+		if (lastKnownOrientation != null && lastKnownOrientation.eIsProxy()) {
+			InternalEObject oldLastKnownOrientation = (InternalEObject) lastKnownOrientation;
+			lastKnownOrientation = (Orientation) eResolveProxy(oldLastKnownOrientation);
+			if (lastKnownOrientation != oldLastKnownOrientation) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION, oldLastKnownOrientation,
+							lastKnownOrientation));
+			}
+		}
+		return lastKnownOrientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Orientation basicGetLastKnownOrientation() {
+		return lastKnownOrientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLastKnownOrientation(Orientation newLastKnownOrientation) {
+		Orientation oldLastKnownOrientation = lastKnownOrientation;
+		lastKnownOrientation = newLastKnownOrientation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION, oldLastKnownOrientation,
+					lastKnownOrientation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<ZoneDescriptor> getLastKnownZonedescriptors() {
+		if (lastKnownZonedescriptors == null) {
+			lastKnownZonedescriptors = new EObjectResolvingEList<ZoneDescriptor>(ZoneDescriptor.class, this,
+					IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS);
+		}
+		return lastKnownZonedescriptors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAgentId() {
+		return agentId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAgentId(String newAgentId) {
+		String oldAgentId = agentId;
+		agentId = newAgentId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID,
+					oldAgentId, agentId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LinkedList<HashMap<String, String>> getExtractedAttributes() {
+		return extractedAttributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExtractedAttributes(LinkedList<HashMap<String, String>> newExtractedAttributes) {
+		LinkedList<HashMap<String, String>> oldExtractedAttributes = extractedAttributes;
+		extractedAttributes = newExtractedAttributes;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES, oldExtractedAttributes,
+					extractedAttributes));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTimestamp() {
+		return timestamp;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTimestamp(String newTimestamp) {
+		String oldTimestamp = timestamp;
+		timestamp = newTimestamp;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP,
+					oldTimestamp, timestamp));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME:
+			return getProtocolName();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG:
+			return getSerializedMsg();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE:
+			return getLastPosUpdate();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION:
+			if (resolve)
+				return getLastKnownPosition();
+			return basicGetLastKnownPosition();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION:
+			if (resolve)
+				return getLastKnownOrientation();
+			return basicGetLastKnownOrientation();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS:
+			return getLastKnownZonedescriptors();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID:
+			return getAgentId();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES:
+			return getExtractedAttributes();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP:
+			return getTimestamp();
+		}
+		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 IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME:
+			setProtocolName((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG:
+			setSerializedMsg((byte[]) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE:
+			setLastPosUpdate((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION:
+			setLastKnownPosition((Position) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION:
+			setLastKnownOrientation((Orientation) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS:
+			getLastKnownZonedescriptors().clear();
+			getLastKnownZonedescriptors().addAll((Collection<? extends ZoneDescriptor>) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID:
+			setAgentId((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES:
+			setExtractedAttributes((LinkedList<HashMap<String, String>>) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP:
+			setTimestamp((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME:
+			setProtocolName(PROTOCOL_NAME_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG:
+			setSerializedMsg(SERIALIZED_MSG_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE:
+			setLastPosUpdate(LAST_POS_UPDATE_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION:
+			setLastKnownPosition((Position) null);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION:
+			setLastKnownOrientation((Orientation) null);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS:
+			getLastKnownZonedescriptors().clear();
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID:
+			setAgentId(AGENT_ID_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES:
+			setExtractedAttributes(EXTRACTED_ATTRIBUTES_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP:
+			setTimestamp(TIMESTAMP_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__PROTOCOL_NAME:
+			return PROTOCOL_NAME_EDEFAULT == null ? protocolName != null : !PROTOCOL_NAME_EDEFAULT.equals(protocolName);
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__SERIALIZED_MSG:
+			return SERIALIZED_MSG_EDEFAULT == null ? serializedMsg != null
+					: !SERIALIZED_MSG_EDEFAULT.equals(serializedMsg);
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_POS_UPDATE:
+			return LAST_POS_UPDATE_EDEFAULT == null ? lastPosUpdate != null
+					: !LAST_POS_UPDATE_EDEFAULT.equals(lastPosUpdate);
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_POSITION:
+			return lastKnownPosition != null;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ORIENTATION:
+			return lastKnownOrientation != null;
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__LAST_KNOWN_ZONEDESCRIPTORS:
+			return lastKnownZonedescriptors != null && !lastKnownZonedescriptors.isEmpty();
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__AGENT_ID:
+			return AGENT_ID_EDEFAULT == null ? agentId != null : !AGENT_ID_EDEFAULT.equals(agentId);
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__EXTRACTED_ATTRIBUTES:
+			return EXTRACTED_ATTRIBUTES_EDEFAULT == null ? extractedAttributes != null
+					: !EXTRACTED_ATTRIBUTES_EDEFAULT.equals(extractedAttributes);
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT__TIMESTAMP:
+			return TIMESTAMP_EDEFAULT == null ? timestamp != null : !TIMESTAMP_EDEFAULT.equals(timestamp);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (protocolName: ");
+		result.append(protocolName);
+		result.append(", serializedMsg: ");
+		result.append(serializedMsg);
+		result.append(", lastPosUpdate: ");
+		result.append(lastPosUpdate);
+		result.append(", agentId: ");
+		result.append(agentId);
+		result.append(", extractedAttributes: ");
+		result.append(extractedAttributes);
+		result.append(", timestamp: ");
+		result.append(timestamp);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IposMsgRcvEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposPositionEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposPositionEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..6d1acc48cacde1684402f27c004c67049a4a2c60
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IposPositionEventImpl.java
@@ -0,0 +1,559 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Orientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.Position;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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 org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ipos Position Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl#getAgentId <em>Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl#getSensorId <em>Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl#getSensorType <em>Sensor Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl#getLastPosUpdate <em>Last Pos Update</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl#getPosition <em>Position</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl#getOrientation <em>Orientation</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IposPositionEventImpl#getZoneDescriptors <em>Zone Descriptors</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IposPositionEventImpl extends MinimalEObjectImpl.Container implements IposPositionEvent {
+	/**
+	 * The default value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AGENT_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String agentId = AGENT_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorId = SENSOR_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String type = TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorType = SENSOR_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LAST_POS_UPDATE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected String lastPosUpdate = LAST_POS_UPDATE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getPosition() <em>Position</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPosition()
+	 * @generated
+	 * @ordered
+	 */
+	protected Position position;
+
+	/**
+	 * The cached value of the '{@link #getOrientation() <em>Orientation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrientation()
+	 * @generated
+	 * @ordered
+	 */
+	protected Orientation orientation;
+
+	/**
+	 * The cached value of the '{@link #getZoneDescriptors() <em>Zone Descriptors</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZoneDescriptors()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ZoneDescriptor> zoneDescriptors;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IposPositionEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.IPOS_POSITION_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAgentId() {
+		return agentId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAgentId(String newAgentId) {
+		String oldAgentId = agentId;
+		agentId = newAgentId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_POSITION_EVENT__AGENT_ID,
+					oldAgentId, agentId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorId() {
+		return sensorId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorId(String newSensorId) {
+		String oldSensorId = sensorId;
+		sensorId = newSensorId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_ID,
+					oldSensorId, sensorId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(String newType) {
+		String oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_POSITION_EVENT__TYPE, oldType,
+					type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorType() {
+		return sensorType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorType(String newSensorType) {
+		String oldSensorType = sensorType;
+		sensorType = newSensorType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_TYPE,
+					oldSensorType, sensorType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLastPosUpdate() {
+		return lastPosUpdate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLastPosUpdate(String newLastPosUpdate) {
+		String oldLastPosUpdate = lastPosUpdate;
+		lastPosUpdate = newLastPosUpdate;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.IPOS_POSITION_EVENT__LAST_POS_UPDATE, oldLastPosUpdate, lastPosUpdate));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position getPosition() {
+		if (position != null && position.eIsProxy()) {
+			InternalEObject oldPosition = (InternalEObject) position;
+			position = (Position) eResolveProxy(oldPosition);
+			if (position != oldPosition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							IPosDevKitPackage.IPOS_POSITION_EVENT__POSITION, oldPosition, position));
+			}
+		}
+		return position;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Position basicGetPosition() {
+		return position;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPosition(Position newPosition) {
+		Position oldPosition = position;
+		position = newPosition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_POSITION_EVENT__POSITION,
+					oldPosition, position));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Orientation getOrientation() {
+		if (orientation != null && orientation.eIsProxy()) {
+			InternalEObject oldOrientation = (InternalEObject) orientation;
+			orientation = (Orientation) eResolveProxy(oldOrientation);
+			if (orientation != oldOrientation) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							IPosDevKitPackage.IPOS_POSITION_EVENT__ORIENTATION, oldOrientation, orientation));
+			}
+		}
+		return orientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Orientation basicGetOrientation() {
+		return orientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOrientation(Orientation newOrientation) {
+		Orientation oldOrientation = orientation;
+		orientation = newOrientation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.IPOS_POSITION_EVENT__ORIENTATION,
+					oldOrientation, orientation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<ZoneDescriptor> getZoneDescriptors() {
+		if (zoneDescriptors == null) {
+			zoneDescriptors = new EObjectResolvingEList<ZoneDescriptor>(ZoneDescriptor.class, this,
+					IPosDevKitPackage.IPOS_POSITION_EVENT__ZONE_DESCRIPTORS);
+		}
+		return zoneDescriptors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__AGENT_ID:
+			return getAgentId();
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_ID:
+			return getSensorId();
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__TYPE:
+			return getType();
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_TYPE:
+			return getSensorType();
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__LAST_POS_UPDATE:
+			return getLastPosUpdate();
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__POSITION:
+			if (resolve)
+				return getPosition();
+			return basicGetPosition();
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__ORIENTATION:
+			if (resolve)
+				return getOrientation();
+			return basicGetOrientation();
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__ZONE_DESCRIPTORS:
+			return getZoneDescriptors();
+		}
+		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 IPosDevKitPackage.IPOS_POSITION_EVENT__AGENT_ID:
+			setAgentId((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_ID:
+			setSensorId((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__TYPE:
+			setType((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_TYPE:
+			setSensorType((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__LAST_POS_UPDATE:
+			setLastPosUpdate((String) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__POSITION:
+			setPosition((Position) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__ORIENTATION:
+			setOrientation((Orientation) newValue);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__ZONE_DESCRIPTORS:
+			getZoneDescriptors().clear();
+			getZoneDescriptors().addAll((Collection<? extends ZoneDescriptor>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__AGENT_ID:
+			setAgentId(AGENT_ID_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_ID:
+			setSensorId(SENSOR_ID_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__TYPE:
+			setType(TYPE_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_TYPE:
+			setSensorType(SENSOR_TYPE_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__LAST_POS_UPDATE:
+			setLastPosUpdate(LAST_POS_UPDATE_EDEFAULT);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__POSITION:
+			setPosition((Position) null);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__ORIENTATION:
+			setOrientation((Orientation) null);
+			return;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__ZONE_DESCRIPTORS:
+			getZoneDescriptors().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__AGENT_ID:
+			return AGENT_ID_EDEFAULT == null ? agentId != null : !AGENT_ID_EDEFAULT.equals(agentId);
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_ID:
+			return SENSOR_ID_EDEFAULT == null ? sensorId != null : !SENSOR_ID_EDEFAULT.equals(sensorId);
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__TYPE:
+			return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__SENSOR_TYPE:
+			return SENSOR_TYPE_EDEFAULT == null ? sensorType != null : !SENSOR_TYPE_EDEFAULT.equals(sensorType);
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__LAST_POS_UPDATE:
+			return LAST_POS_UPDATE_EDEFAULT == null ? lastPosUpdate != null
+					: !LAST_POS_UPDATE_EDEFAULT.equals(lastPosUpdate);
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__POSITION:
+			return position != null;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__ORIENTATION:
+			return orientation != null;
+		case IPosDevKitPackage.IPOS_POSITION_EVENT__ZONE_DESCRIPTORS:
+			return zoneDescriptors != null && !zoneDescriptors.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (agentId: ");
+		result.append(agentId);
+		result.append(", sensorId: ");
+		result.append(sensorId);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", sensorType: ");
+		result.append(sensorType);
+		result.append(", lastPosUpdate: ");
+		result.append(lastPosUpdate);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IposPositionEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/MonitoringRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/MonitoringRequestImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..0c409197c478a5f3200941c073ad3a3d2071410f
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/MonitoringRequestImpl.java
@@ -0,0 +1,776 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Monitoring Request</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getFrameIds <em>Frame Ids</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getDelta <em>Delta</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getUpdateFrequency <em>Update Frequency</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getId <em>Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getFusionStrategy <em>Fusion Strategy</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#isExitNotification <em>Exit Notification</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getMonitoringTaskId <em>Monitoring Task Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getRequestorProtocol <em>Requestor Protocol</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getSerializationType <em>Serialization Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.MonitoringRequestImpl#getRefSystemId <em>Ref System Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MonitoringRequestImpl extends MinimalEObjectImpl.Container implements MonitoringRequest {
+	/**
+	 * The default value of the '{@link #getFrameIds() <em>Frame Ids</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFrameIds()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final List<String> FRAME_IDS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFrameIds() <em>Frame Ids</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFrameIds()
+	 * @generated
+	 * @ordered
+	 */
+	protected List<String> frameIds = FRAME_IDS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDelta() <em>Delta</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDelta()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float DELTA_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getDelta() <em>Delta</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDelta()
+	 * @generated
+	 * @ordered
+	 */
+	protected float delta = DELTA_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getUpdateFrequency() <em>Update Frequency</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUpdateFrequency()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float UPDATE_FREQUENCY_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getUpdateFrequency() <em>Update Frequency</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUpdateFrequency()
+	 * @generated
+	 * @ordered
+	 */
+	protected float updateFrequency = UPDATE_FREQUENCY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final List<String> TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected List<String> type = TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final List<String> ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected List<String> id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getFusionStrategy() <em>Fusion Strategy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFusionStrategy()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FUSION_STRATEGY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFusionStrategy() <em>Fusion Strategy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFusionStrategy()
+	 * @generated
+	 * @ordered
+	 */
+	protected String fusionStrategy = FUSION_STRATEGY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isExitNotification() <em>Exit Notification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isExitNotification()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EXIT_NOTIFICATION_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isExitNotification() <em>Exit Notification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isExitNotification()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean exitNotification = EXIT_NOTIFICATION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getProperties() <em>Properties</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final List<String> PROPERTIES_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected List<String> properties = PROPERTIES_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMonitoringTaskId() <em>Monitoring Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMonitoringTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String MONITORING_TASK_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getMonitoringTaskId() <em>Monitoring Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMonitoringTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String monitoringTaskId = MONITORING_TASK_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRequestorProtocol() <em>Requestor Protocol</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRequestorProtocol()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REQUESTOR_PROTOCOL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRequestorProtocol() <em>Requestor Protocol</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRequestorProtocol()
+	 * @generated
+	 * @ordered
+	 */
+	protected String requestorProtocol = REQUESTOR_PROTOCOL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSerializationType() <em>Serialization Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSerializationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SERIALIZATION_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSerializationType() <em>Serialization Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSerializationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String serializationType = SERIALIZATION_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRefSystemId() <em>Ref System Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefSystemId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REF_SYSTEM_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRefSystemId() <em>Ref System Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefSystemId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String refSystemId = REF_SYSTEM_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MonitoringRequestImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPosDevKitPackage.Literals.MONITORING_REQUEST;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<String> getFrameIds() {
+		return frameIds;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFrameIds(List<String> newFrameIds) {
+		List<String> oldFrameIds = frameIds;
+		frameIds = newFrameIds;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.MONITORING_REQUEST__FRAME_IDS,
+					oldFrameIds, frameIds));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getDelta() {
+		return delta;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDelta(float newDelta) {
+		float oldDelta = delta;
+		delta = newDelta;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.MONITORING_REQUEST__DELTA, oldDelta,
+					delta));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getUpdateFrequency() {
+		return updateFrequency;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUpdateFrequency(float newUpdateFrequency) {
+		float oldUpdateFrequency = updateFrequency;
+		updateFrequency = newUpdateFrequency;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.MONITORING_REQUEST__UPDATE_FREQUENCY, oldUpdateFrequency, updateFrequency));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<String> getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(List<String> newType) {
+		List<String> oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.MONITORING_REQUEST__TYPE, oldType,
+					type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<String> getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(List<String> newId) {
+		List<String> oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.MONITORING_REQUEST__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFusionStrategy() {
+		return fusionStrategy;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFusionStrategy(String newFusionStrategy) {
+		String oldFusionStrategy = fusionStrategy;
+		fusionStrategy = newFusionStrategy;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.MONITORING_REQUEST__FUSION_STRATEGY,
+					oldFusionStrategy, fusionStrategy));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isExitNotification() {
+		return exitNotification;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExitNotification(boolean newExitNotification) {
+		boolean oldExitNotification = exitNotification;
+		exitNotification = newExitNotification;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.MONITORING_REQUEST__EXIT_NOTIFICATION, oldExitNotification, exitNotification));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<String> getProperties() {
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProperties(List<String> newProperties) {
+		List<String> oldProperties = properties;
+		properties = newProperties;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.MONITORING_REQUEST__PROPERTIES,
+					oldProperties, properties));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getMonitoringTaskId() {
+		return monitoringTaskId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMonitoringTaskId(String newMonitoringTaskId) {
+		String oldMonitoringTaskId = monitoringTaskId;
+		monitoringTaskId = newMonitoringTaskId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.MONITORING_REQUEST__MONITORING_TASK_ID, oldMonitoringTaskId, monitoringTaskId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRequestorProtocol() {
+		return requestorProtocol;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRequestorProtocol(String newRequestorProtocol) {
+		String oldRequestorProtocol = requestorProtocol;
+		requestorProtocol = newRequestorProtocol;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.MONITORING_REQUEST__REQUESTOR_PROTOCOL, oldRequestorProtocol, requestorProtocol));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSerializationType() {
+		return serializationType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSerializationType(String newSerializationType) {
+		String oldSerializationType = serializationType;
+		serializationType = newSerializationType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPosDevKitPackage.MONITORING_REQUEST__SERIALIZATION_TYPE, oldSerializationType, serializationType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRefSystemId() {
+		return refSystemId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRefSystemId(String newRefSystemId) {
+		String oldRefSystemId = refSystemId;
+		refSystemId = newRefSystemId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPosDevKitPackage.MONITORING_REQUEST__REF_SYSTEM_ID,
+					oldRefSystemId, refSystemId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPosDevKitPackage.MONITORING_REQUEST__FRAME_IDS:
+			return getFrameIds();
+		case IPosDevKitPackage.MONITORING_REQUEST__DELTA:
+			return getDelta();
+		case IPosDevKitPackage.MONITORING_REQUEST__UPDATE_FREQUENCY:
+			return getUpdateFrequency();
+		case IPosDevKitPackage.MONITORING_REQUEST__TYPE:
+			return getType();
+		case IPosDevKitPackage.MONITORING_REQUEST__ID:
+			return getId();
+		case IPosDevKitPackage.MONITORING_REQUEST__FUSION_STRATEGY:
+			return getFusionStrategy();
+		case IPosDevKitPackage.MONITORING_REQUEST__EXIT_NOTIFICATION:
+			return isExitNotification();
+		case IPosDevKitPackage.MONITORING_REQUEST__PROPERTIES:
+			return getProperties();
+		case IPosDevKitPackage.MONITORING_REQUEST__MONITORING_TASK_ID:
+			return getMonitoringTaskId();
+		case IPosDevKitPackage.MONITORING_REQUEST__REQUESTOR_PROTOCOL:
+			return getRequestorProtocol();
+		case IPosDevKitPackage.MONITORING_REQUEST__SERIALIZATION_TYPE:
+			return getSerializationType();
+		case IPosDevKitPackage.MONITORING_REQUEST__REF_SYSTEM_ID:
+			return getRefSystemId();
+		}
+		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 IPosDevKitPackage.MONITORING_REQUEST__FRAME_IDS:
+			setFrameIds((List<String>) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__DELTA:
+			setDelta((Float) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__UPDATE_FREQUENCY:
+			setUpdateFrequency((Float) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__TYPE:
+			setType((List<String>) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__ID:
+			setId((List<String>) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__FUSION_STRATEGY:
+			setFusionStrategy((String) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__EXIT_NOTIFICATION:
+			setExitNotification((Boolean) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__PROPERTIES:
+			setProperties((List<String>) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__MONITORING_TASK_ID:
+			setMonitoringTaskId((String) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__REQUESTOR_PROTOCOL:
+			setRequestorProtocol((String) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__SERIALIZATION_TYPE:
+			setSerializationType((String) newValue);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__REF_SYSTEM_ID:
+			setRefSystemId((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.MONITORING_REQUEST__FRAME_IDS:
+			setFrameIds(FRAME_IDS_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__DELTA:
+			setDelta(DELTA_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__UPDATE_FREQUENCY:
+			setUpdateFrequency(UPDATE_FREQUENCY_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__TYPE:
+			setType(TYPE_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__FUSION_STRATEGY:
+			setFusionStrategy(FUSION_STRATEGY_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__EXIT_NOTIFICATION:
+			setExitNotification(EXIT_NOTIFICATION_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__PROPERTIES:
+			setProperties(PROPERTIES_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__MONITORING_TASK_ID:
+			setMonitoringTaskId(MONITORING_TASK_ID_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__REQUESTOR_PROTOCOL:
+			setRequestorProtocol(REQUESTOR_PROTOCOL_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__SERIALIZATION_TYPE:
+			setSerializationType(SERIALIZATION_TYPE_EDEFAULT);
+			return;
+		case IPosDevKitPackage.MONITORING_REQUEST__REF_SYSTEM_ID:
+			setRefSystemId(REF_SYSTEM_ID_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPosDevKitPackage.MONITORING_REQUEST__FRAME_IDS:
+			return FRAME_IDS_EDEFAULT == null ? frameIds != null : !FRAME_IDS_EDEFAULT.equals(frameIds);
+		case IPosDevKitPackage.MONITORING_REQUEST__DELTA:
+			return delta != DELTA_EDEFAULT;
+		case IPosDevKitPackage.MONITORING_REQUEST__UPDATE_FREQUENCY:
+			return updateFrequency != UPDATE_FREQUENCY_EDEFAULT;
+		case IPosDevKitPackage.MONITORING_REQUEST__TYPE:
+			return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+		case IPosDevKitPackage.MONITORING_REQUEST__ID:
+			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+		case IPosDevKitPackage.MONITORING_REQUEST__FUSION_STRATEGY:
+			return FUSION_STRATEGY_EDEFAULT == null ? fusionStrategy != null
+					: !FUSION_STRATEGY_EDEFAULT.equals(fusionStrategy);
+		case IPosDevKitPackage.MONITORING_REQUEST__EXIT_NOTIFICATION:
+			return exitNotification != EXIT_NOTIFICATION_EDEFAULT;
+		case IPosDevKitPackage.MONITORING_REQUEST__PROPERTIES:
+			return PROPERTIES_EDEFAULT == null ? properties != null : !PROPERTIES_EDEFAULT.equals(properties);
+		case IPosDevKitPackage.MONITORING_REQUEST__MONITORING_TASK_ID:
+			return MONITORING_TASK_ID_EDEFAULT == null ? monitoringTaskId != null
+					: !MONITORING_TASK_ID_EDEFAULT.equals(monitoringTaskId);
+		case IPosDevKitPackage.MONITORING_REQUEST__REQUESTOR_PROTOCOL:
+			return REQUESTOR_PROTOCOL_EDEFAULT == null ? requestorProtocol != null
+					: !REQUESTOR_PROTOCOL_EDEFAULT.equals(requestorProtocol);
+		case IPosDevKitPackage.MONITORING_REQUEST__SERIALIZATION_TYPE:
+			return SERIALIZATION_TYPE_EDEFAULT == null ? serializationType != null
+					: !SERIALIZATION_TYPE_EDEFAULT.equals(serializationType);
+		case IPosDevKitPackage.MONITORING_REQUEST__REF_SYSTEM_ID:
+			return REF_SYSTEM_ID_EDEFAULT == null ? refSystemId != null : !REF_SYSTEM_ID_EDEFAULT.equals(refSystemId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (frameIds: ");
+		result.append(frameIds);
+		result.append(", delta: ");
+		result.append(delta);
+		result.append(", updateFrequency: ");
+		result.append(updateFrequency);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", fusionStrategy: ");
+		result.append(fusionStrategy);
+		result.append(", exitNotification: ");
+		result.append(exitNotification);
+		result.append(", properties: ");
+		result.append(properties);
+		result.append(", monitoringTaskId: ");
+		result.append(monitoringTaskId);
+		result.append(", requestorProtocol: ");
+		result.append(requestorProtocol);
+		result.append(", serializationType: ");
+		result.append(serializationType);
+		result.append(", refSystemId: ");
+		result.append(refSystemId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //MonitoringRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/SensorConfigurationRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/SensorConfigurationRequestImpl.java
similarity index 68%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/SensorConfigurationRequestImpl.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/SensorConfigurationRequestImpl.java
index 275929b028ad5ed5d994d2b61aaed70a823fc395..738638aa310059bbbc38eaa716c3406549e09eda 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/SensorConfigurationRequestImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/SensorConfigurationRequestImpl.java
@@ -1,9 +1,9 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
 
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.SensorConfigurationRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.SensorConfigurationRequest;
 
 import org.eclipse.emf.ecore.EClass;
 
@@ -33,7 +33,7 @@ public class SensorConfigurationRequestImpl extends MinimalEObjectImpl.Container
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.SENSOR_CONFIGURATION_REQUEST;
+		return IPosDevKitPackage.Literals.SENSOR_CONFIGURATION_REQUEST;
 	}
 
 } //SensorConfigurationRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/TrackingRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/TrackingRequestImpl.java
similarity index 68%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/TrackingRequestImpl.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/TrackingRequestImpl.java
index e1c27083e26ff381de01bd2c1effdf4955f316b9..66fc8bf7dbb9a9322f71404f67e2b449fccfecef 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/TrackingRequestImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/TrackingRequestImpl.java
@@ -1,9 +1,9 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
 
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.TrackingRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.TrackingRequest;
 
 import org.eclipse.emf.ecore.EClass;
 
@@ -33,7 +33,7 @@ public class TrackingRequestImpl extends MinimalEObjectImpl.Container implements
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.TRACKING_REQUEST;
+		return IPosDevKitPackage.Literals.TRACKING_REQUEST;
 	}
 
 } //TrackingRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelQueryRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/WorldModelQueryRequestImpl.java
similarity index 68%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelQueryRequestImpl.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/WorldModelQueryRequestImpl.java
index 74618cb0f51a1d62460355dcec5eefbfb409facc..9e5402bb86e4e507027d1a5cd18f30d273e7d645 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelQueryRequestImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/WorldModelQueryRequestImpl.java
@@ -1,9 +1,9 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
 
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.WorldModelQueryRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelQueryRequest;
 
 import org.eclipse.emf.ecore.EClass;
 
@@ -33,7 +33,7 @@ public class WorldModelQueryRequestImpl extends MinimalEObjectImpl.Container imp
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.WORLD_MODEL_QUERY_REQUEST;
+		return IPosDevKitPackage.Literals.WORLD_MODEL_QUERY_REQUEST;
 	}
 
 } //WorldModelQueryRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelUpdateRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/WorldModelUpdateRequestImpl.java
similarity index 68%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelUpdateRequestImpl.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/WorldModelUpdateRequestImpl.java
index 510b2ef29e08986971947582fa0bbbc9ebfc0095..77db72873ef8a055f44fca715e9ab1ed85e87301 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelUpdateRequestImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/WorldModelUpdateRequestImpl.java
@@ -1,9 +1,9 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl;
 
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.WorldModelUpdateRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelUpdateRequest;
 
 import org.eclipse.emf.ecore.EClass;
 
@@ -33,7 +33,7 @@ public class WorldModelUpdateRequestImpl extends MinimalEObjectImpl.Container im
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.WORLD_MODEL_UPDATE_REQUEST;
+		return IPosDevKitPackage.Literals.WORLD_MODEL_UPDATE_REQUEST;
 	}
 
 } //WorldModelUpdateRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitAdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitAdapterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..831419cda659d4f64270e954290416d7069962ed
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitAdapterFactory.java
@@ -0,0 +1,480 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage
+ * @generated
+ */
+public class IPosDevKitAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static IPosDevKitPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosDevKitAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = IPosDevKitPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IPosDevKitSwitch<Adapter> modelSwitch = new IPosDevKitSwitch<Adapter>() {
+		@Override
+		public Adapter caseTrackingRequest(TrackingRequest object) {
+			return createTrackingRequestAdapter();
+		}
+
+		@Override
+		public Adapter caseMonitoringRequest(MonitoringRequest object) {
+			return createMonitoringRequestAdapter();
+		}
+
+		@Override
+		public Adapter caseWorldModelUpdateRequest(WorldModelUpdateRequest object) {
+			return createWorldModelUpdateRequestAdapter();
+		}
+
+		@Override
+		public Adapter caseDataStorageRequest(DataStorageRequest object) {
+			return createDataStorageRequestAdapter();
+		}
+
+		@Override
+		public Adapter caseWorldModelQueryRequest(WorldModelQueryRequest object) {
+			return createWorldModelQueryRequestAdapter();
+		}
+
+		@Override
+		public Adapter caseDataStorageQueryRequest(DataStorageQueryRequest object) {
+			return createDataStorageQueryRequestAdapter();
+		}
+
+		@Override
+		public Adapter caseAgentRegistrationRequest(AgentRegistrationRequest object) {
+			return createAgentRegistrationRequestAdapter();
+		}
+
+		@Override
+		public Adapter caseSensorConfigurationRequest(SensorConfigurationRequest object) {
+			return createSensorConfigurationRequestAdapter();
+		}
+
+		@Override
+		public Adapter caseIposPositionEvent(IposPositionEvent object) {
+			return createIposPositionEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosRawdataEvent(IPosRawdataEvent object) {
+			return createIPosRawdataEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosBeaconEvent(IPosBeaconEvent object) {
+			return createIPosBeaconEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosUWBEvent(IPosUWBEvent object) {
+			return createIPosUWBEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosBTEvent(IPosBTEvent object) {
+			return createIPosBTEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosProximityEvent(IPosProximityEvent object) {
+			return createIPosProximityEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosNFCEvent(IPosNFCEvent object) {
+			return createIPosNFCEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosBarcodeEvent(IPosBarcodeEvent object) {
+			return createIPosBarcodeEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosRFIDEvent(IPosRFIDEvent object) {
+			return createIPosRFIDEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosOtherProxEvent(IPosOtherProxEvent object) {
+			return createIPosOtherProxEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIPosOtherBeaconEvent(IPosOtherBeaconEvent object) {
+			return createIPosOtherBeaconEventAdapter();
+		}
+
+		@Override
+		public Adapter caseIposMsgRcvEvent(IposMsgRcvEvent object) {
+			return createIposMsgRcvEventAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.TrackingRequest <em>Tracking Request</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.TrackingRequest
+	 * @generated
+	 */
+	public Adapter createTrackingRequestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest <em>Monitoring Request</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest
+	 * @generated
+	 */
+	public Adapter createMonitoringRequestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelUpdateRequest <em>World Model Update Request</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelUpdateRequest
+	 * @generated
+	 */
+	public Adapter createWorldModelUpdateRequestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageRequest <em>Data Storage Request</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageRequest
+	 * @generated
+	 */
+	public Adapter createDataStorageRequestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelQueryRequest <em>World Model Query Request</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.WorldModelQueryRequest
+	 * @generated
+	 */
+	public Adapter createWorldModelQueryRequestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest <em>Data Storage Query Request</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest
+	 * @generated
+	 */
+	public Adapter createDataStorageQueryRequestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.AgentRegistrationRequest <em>Agent Registration Request</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.AgentRegistrationRequest
+	 * @generated
+	 */
+	public Adapter createAgentRegistrationRequestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.SensorConfigurationRequest <em>Sensor Configuration Request</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.SensorConfigurationRequest
+	 * @generated
+	 */
+	public Adapter createSensorConfigurationRequestAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent <em>Ipos Position Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent
+	 * @generated
+	 */
+	public Adapter createIposPositionEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent <em>IPos Rawdata Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent
+	 * @generated
+	 */
+	public Adapter createIPosRawdataEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent <em>IPos Beacon Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent
+	 * @generated
+	 */
+	public Adapter createIPosBeaconEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent <em>IPos UWB Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent
+	 * @generated
+	 */
+	public Adapter createIPosUWBEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent <em>IPos BT Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent
+	 * @generated
+	 */
+	public Adapter createIPosBTEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent <em>IPos Proximity Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosProximityEvent
+	 * @generated
+	 */
+	public Adapter createIPosProximityEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent <em>IPos NFC Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosNFCEvent
+	 * @generated
+	 */
+	public Adapter createIPosNFCEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBarcodeEvent <em>IPos Barcode Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBarcodeEvent
+	 * @generated
+	 */
+	public Adapter createIPosBarcodeEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent <em>IPos RFID Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRFIDEvent
+	 * @generated
+	 */
+	public Adapter createIPosRFIDEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent <em>IPos Other Prox Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherProxEvent
+	 * @generated
+	 */
+	public Adapter createIPosOtherProxEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent <em>IPos Other Beacon Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosOtherBeaconEvent
+	 * @generated
+	 */
+	public Adapter createIPosOtherBeaconEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent <em>Ipos Msg Rcv Event</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 ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent
+	 * @generated
+	 */
+	public Adapter createIposMsgRcvEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //IPosDevKitAdapterFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitSwitch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitSwitch.java
new file mode 100644
index 0000000000000000000000000000000000000000..37c0c80d3b6552abc618aeef2da17ecd54236bb6
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/util/IPosDevKitSwitch.java
@@ -0,0 +1,562 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage
+ * @generated
+ */
+public class IPosDevKitSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static IPosDevKitPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IPosDevKitSwitch() {
+		if (modelPackage == null) {
+			modelPackage = IPosDevKitPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case IPosDevKitPackage.TRACKING_REQUEST: {
+			TrackingRequest trackingRequest = (TrackingRequest) theEObject;
+			T result = caseTrackingRequest(trackingRequest);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.MONITORING_REQUEST: {
+			MonitoringRequest monitoringRequest = (MonitoringRequest) theEObject;
+			T result = caseMonitoringRequest(monitoringRequest);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.WORLD_MODEL_UPDATE_REQUEST: {
+			WorldModelUpdateRequest worldModelUpdateRequest = (WorldModelUpdateRequest) theEObject;
+			T result = caseWorldModelUpdateRequest(worldModelUpdateRequest);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.DATA_STORAGE_REQUEST: {
+			DataStorageRequest dataStorageRequest = (DataStorageRequest) theEObject;
+			T result = caseDataStorageRequest(dataStorageRequest);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.WORLD_MODEL_QUERY_REQUEST: {
+			WorldModelQueryRequest worldModelQueryRequest = (WorldModelQueryRequest) theEObject;
+			T result = caseWorldModelQueryRequest(worldModelQueryRequest);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.DATA_STORAGE_QUERY_REQUEST: {
+			DataStorageQueryRequest dataStorageQueryRequest = (DataStorageQueryRequest) theEObject;
+			T result = caseDataStorageQueryRequest(dataStorageQueryRequest);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.AGENT_REGISTRATION_REQUEST: {
+			AgentRegistrationRequest agentRegistrationRequest = (AgentRegistrationRequest) theEObject;
+			T result = caseAgentRegistrationRequest(agentRegistrationRequest);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.SENSOR_CONFIGURATION_REQUEST: {
+			SensorConfigurationRequest sensorConfigurationRequest = (SensorConfigurationRequest) theEObject;
+			T result = caseSensorConfigurationRequest(sensorConfigurationRequest);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_POSITION_EVENT: {
+			IposPositionEvent iposPositionEvent = (IposPositionEvent) theEObject;
+			T result = caseIposPositionEvent(iposPositionEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_RAWDATA_EVENT: {
+			IPosRawdataEvent iPosRawdataEvent = (IPosRawdataEvent) theEObject;
+			T result = caseIPosRawdataEvent(iPosRawdataEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_BEACON_EVENT: {
+			IPosBeaconEvent iPosBeaconEvent = (IPosBeaconEvent) theEObject;
+			T result = caseIPosBeaconEvent(iPosBeaconEvent);
+			if (result == null)
+				result = caseIPosRawdataEvent(iPosBeaconEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_UWB_EVENT: {
+			IPosUWBEvent iPosUWBEvent = (IPosUWBEvent) theEObject;
+			T result = caseIPosUWBEvent(iPosUWBEvent);
+			if (result == null)
+				result = caseIPosBeaconEvent(iPosUWBEvent);
+			if (result == null)
+				result = caseIPosRawdataEvent(iPosUWBEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_BT_EVENT: {
+			IPosBTEvent iPosBTEvent = (IPosBTEvent) theEObject;
+			T result = caseIPosBTEvent(iPosBTEvent);
+			if (result == null)
+				result = caseIPosBeaconEvent(iPosBTEvent);
+			if (result == null)
+				result = caseIPosRawdataEvent(iPosBTEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_PROXIMITY_EVENT: {
+			IPosProximityEvent iPosProximityEvent = (IPosProximityEvent) theEObject;
+			T result = caseIPosProximityEvent(iPosProximityEvent);
+			if (result == null)
+				result = caseIPosRawdataEvent(iPosProximityEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_NFC_EVENT: {
+			IPosNFCEvent iPosNFCEvent = (IPosNFCEvent) theEObject;
+			T result = caseIPosNFCEvent(iPosNFCEvent);
+			if (result == null)
+				result = caseIPosProximityEvent(iPosNFCEvent);
+			if (result == null)
+				result = caseIPosRawdataEvent(iPosNFCEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_BARCODE_EVENT: {
+			IPosBarcodeEvent iPosBarcodeEvent = (IPosBarcodeEvent) theEObject;
+			T result = caseIPosBarcodeEvent(iPosBarcodeEvent);
+			if (result == null)
+				result = caseIPosProximityEvent(iPosBarcodeEvent);
+			if (result == null)
+				result = caseIPosRawdataEvent(iPosBarcodeEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_RFID_EVENT: {
+			IPosRFIDEvent iPosRFIDEvent = (IPosRFIDEvent) theEObject;
+			T result = caseIPosRFIDEvent(iPosRFIDEvent);
+			if (result == null)
+				result = caseIPosProximityEvent(iPosRFIDEvent);
+			if (result == null)
+				result = caseIPosRawdataEvent(iPosRFIDEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_OTHER_PROX_EVENT: {
+			IPosOtherProxEvent iPosOtherProxEvent = (IPosOtherProxEvent) theEObject;
+			T result = caseIPosOtherProxEvent(iPosOtherProxEvent);
+			if (result == null)
+				result = caseIPosProximityEvent(iPosOtherProxEvent);
+			if (result == null)
+				result = caseIPosRawdataEvent(iPosOtherProxEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_OTHER_BEACON_EVENT: {
+			IPosOtherBeaconEvent iPosOtherBeaconEvent = (IPosOtherBeaconEvent) theEObject;
+			T result = caseIPosOtherBeaconEvent(iPosOtherBeaconEvent);
+			if (result == null)
+				result = caseIPosBeaconEvent(iPosOtherBeaconEvent);
+			if (result == null)
+				result = caseIPosRawdataEvent(iPosOtherBeaconEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPosDevKitPackage.IPOS_MSG_RCV_EVENT: {
+			IposMsgRcvEvent iposMsgRcvEvent = (IposMsgRcvEvent) theEObject;
+			T result = caseIposMsgRcvEvent(iposMsgRcvEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Tracking Request</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>Tracking Request</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTrackingRequest(TrackingRequest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Monitoring Request</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>Monitoring Request</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMonitoringRequest(MonitoringRequest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>World Model Update Request</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>World Model Update Request</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseWorldModelUpdateRequest(WorldModelUpdateRequest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Storage Request</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>Data Storage Request</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataStorageRequest(DataStorageRequest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>World Model Query Request</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>World Model Query Request</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseWorldModelQueryRequest(WorldModelQueryRequest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Storage Query Request</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>Data Storage Query Request</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataStorageQueryRequest(DataStorageQueryRequest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Agent Registration Request</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>Agent Registration Request</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAgentRegistrationRequest(AgentRegistrationRequest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Sensor Configuration Request</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>Sensor Configuration Request</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSensorConfigurationRequest(SensorConfigurationRequest object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ipos Position Event</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>Ipos Position Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIposPositionEvent(IposPositionEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos Rawdata Event</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>IPos Rawdata Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosRawdataEvent(IPosRawdataEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos Beacon Event</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>IPos Beacon Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosBeaconEvent(IPosBeaconEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos UWB Event</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>IPos UWB Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosUWBEvent(IPosUWBEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos BT Event</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>IPos BT Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosBTEvent(IPosBTEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos Proximity Event</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>IPos Proximity Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosProximityEvent(IPosProximityEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos NFC Event</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>IPos NFC Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosNFCEvent(IPosNFCEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos Barcode Event</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>IPos Barcode Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosBarcodeEvent(IPosBarcodeEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos RFID Event</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>IPos RFID Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosRFIDEvent(IPosRFIDEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos Other Prox Event</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>IPos Other Prox Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosOtherProxEvent(IPosOtherProxEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IPos Other Beacon Event</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>IPos Other Beacon Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIPosOtherBeaconEvent(IPosOtherBeaconEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ipos Msg Rcv Event</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>Ipos Msg Rcv Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIposMsgRcvEvent(IposMsgRcvEvent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //IPosDevKitSwitch
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelFactory.java
index 0e1cd15b85b7704e346d3b53e8a3ec641f249462..739eb3bca8c84eb8e02d3a89502552be5fd4328e 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelFactory.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelFactory.java
@@ -49,15 +49,6 @@ public interface IPos_DatamodelFactory extends EFactory {
 	 */
 	LocalizableObject createLocalizableObject();
 
-	/**
-	 * Returns a new object of class '<em>Position Sensor</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Position Sensor</em>'.
-	 * @generated
-	 */
-	PositionSensor createPositionSensor();
-
 	/**
 	 * Returns a new object of class '<em>Placing</em>'.
 	 * <!-- begin-user-doc -->
@@ -85,24 +76,6 @@ public interface IPos_DatamodelFactory extends EFactory {
 	 */
 	Orientation createOrientation();
 
-	/**
-	 * Returns a new object of class '<em>Absolute Position</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Absolute Position</em>'.
-	 * @generated
-	 */
-	AbsolutePosition createAbsolutePosition();
-
-	/**
-	 * Returns a new object of class '<em>Relative Position</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Relative Position</em>'.
-	 * @generated
-	 */
-	RelativePosition createRelativePosition();
-
 	/**
 	 * Returns a new object of class '<em>WGS84 Point</em>'.
 	 * <!-- begin-user-doc -->
@@ -184,15 +157,6 @@ public interface IPos_DatamodelFactory extends EFactory {
 	 */
 	MapType createMapType();
 
-	/**
-	 * Returns a new object of class '<em>Network Interface</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Network Interface</em>'.
-	 * @generated
-	 */
-	NetworkInterface createNetworkInterface();
-
 	/**
 	 * Returns a new object of class '<em>Quaternion</em>'.
 	 * <!-- begin-user-doc -->
@@ -220,6 +184,15 @@ public interface IPos_DatamodelFactory extends EFactory {
 	 */
 	Point createPoint();
 
+	/**
+	 * Returns a new object of class '<em>Rawdata Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Rawdata Event</em>'.
+	 * @generated
+	 */
+	RawdataEvent createRawdataEvent();
+
 	/**
 	 * Returns a new object of class '<em>Proximity</em>'.
 	 * <!-- begin-user-doc -->
@@ -256,15 +229,6 @@ public interface IPos_DatamodelFactory extends EFactory {
 	 */
 	IMU createIMU();
 
-	/**
-	 * Returns a new object of class '<em>Angular Rate</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Angular Rate</em>'.
-	 * @generated
-	 */
-	AngularRate createAngularRate();
-
 	/**
 	 * Returns a new object of class '<em>Acceleration</em>'.
 	 * <!-- begin-user-doc -->
@@ -292,51 +256,6 @@ public interface IPos_DatamodelFactory extends EFactory {
 	 */
 	PositionEvent createPositionEvent();
 
-	/**
-	 * Returns a new object of class '<em>Rawdata Event</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Rawdata Event</em>'.
-	 * @generated
-	 */
-	RawdataEvent createRawdataEvent();
-
-	/**
-	 * Returns a new object of class '<em>Tracking Request</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Tracking Request</em>'.
-	 * @generated
-	 */
-	TrackingRequest createTrackingRequest();
-
-	/**
-	 * Returns a new object of class '<em>Monitoring Request</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Monitoring Request</em>'.
-	 * @generated
-	 */
-	MonitoringRequest createMonitoringRequest();
-
-	/**
-	 * Returns a new object of class '<em>World Model Update Request</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>World Model Update Request</em>'.
-	 * @generated
-	 */
-	WorldModelUpdateRequest createWorldModelUpdateRequest();
-
-	/**
-	 * Returns a new object of class '<em>Data Storage Request</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Data Storage Request</em>'.
-	 * @generated
-	 */
-	DataStorageRequest createDataStorageRequest();
-
 	/**
 	 * Returns a new object of class '<em>Event Filter Configuration</em>'.
 	 * <!-- begin-user-doc -->
@@ -346,33 +265,6 @@ public interface IPos_DatamodelFactory extends EFactory {
 	 */
 	EventFilterConfiguration createEventFilterConfiguration();
 
-	/**
-	 * Returns a new object of class '<em>World Model Query Request</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>World Model Query Request</em>'.
-	 * @generated
-	 */
-	WorldModelQueryRequest createWorldModelQueryRequest();
-
-	/**
-	 * Returns a new object of class '<em>Data Storage Query Request</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Data Storage Query Request</em>'.
-	 * @generated
-	 */
-	DataStorageQueryRequest createDataStorageQueryRequest();
-
-	/**
-	 * Returns a new object of class '<em>Agent Registration Request</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Agent Registration Request</em>'.
-	 * @generated
-	 */
-	AgentRegistrationRequest createAgentRegistrationRequest();
-
 	/**
 	 * Returns a new object of class '<em>Monitoring Task</em>'.
 	 * <!-- begin-user-doc -->
@@ -436,15 +328,6 @@ public interface IPos_DatamodelFactory extends EFactory {
 	 */
 	UWB createUWB();
 
-	/**
-	 * Returns a new object of class '<em>Sensor Configuration Request</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Sensor Configuration Request</em>'.
-	 * @generated
-	 */
-	SensorConfigurationRequest createSensorConfigurationRequest();
-
 	/**
 	 * Returns a new object of class '<em>Other Beacon</em>'.
 	 * <!-- begin-user-doc -->
@@ -455,13 +338,13 @@ public interface IPos_DatamodelFactory extends EFactory {
 	OtherBeacon createOtherBeacon();
 
 	/**
-	 * Returns a new object of class '<em>Reference Position</em>'.
+	 * Returns a new object of class '<em>POI</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Reference Position</em>'.
+	 * @return a new object of class '<em>POI</em>'.
 	 * @generated
 	 */
-	ReferencePosition createReferencePosition();
+	POI createPOI();
 
 	/**
 	 * Returns a new object of class '<em>Event Filter Condition</em>'.
@@ -472,6 +355,33 @@ public interface IPos_DatamodelFactory extends EFactory {
 	 */
 	EventFilterCondition createEventFilterCondition();
 
+	/**
+	 * Returns a new object of class '<em>Zone Descriptor</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Zone Descriptor</em>'.
+	 * @generated
+	 */
+	ZoneDescriptor createZoneDescriptor();
+
+	/**
+	 * Returns a new object of class '<em>Data Storage Query Response</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Storage Query Response</em>'.
+	 * @generated
+	 */
+	DataStorageQueryResponse createDataStorageQueryResponse();
+
+	/**
+	 * Returns a new object of class '<em>Message Received Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Message Received Event</em>'.
+	 * @generated
+	 */
+	MessageReceivedEvent createMessageReceivedEvent();
+
 	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java
index 431db6f62c6b35f9a52e06873f77001eee41449f..e1910169e79d970768419868191e223748374193 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java
@@ -114,15 +114,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	int AGENT__ID = ENTITY__ID;
 
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int AGENT__NAME = ENTITY_FEATURE_COUNT + 0;
-
 	/**
 	 * The feature id for the '<em><b>LObject</b></em>' reference list.
 	 * <!-- begin-user-doc -->
@@ -130,25 +121,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int AGENT__LOBJECT = ENTITY_FEATURE_COUNT + 1;
+	int AGENT__LOBJECT = ENTITY_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Net Int</b></em>' reference.
+	 * The feature id for the '<em><b>Agent Type</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int AGENT__NET_INT = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>PSensors</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int AGENT__PSENSORS = ENTITY_FEATURE_COUNT + 3;
+	int AGENT__AGENT_TYPE = ENTITY_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Agent</em>' class.
@@ -157,7 +139,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int AGENT_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 4;
+	int AGENT_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Agent</em>' class.
@@ -188,40 +170,40 @@ public interface IPos_DatamodelPackage extends EPackage {
 	int LOCALIZABLE_OBJECT__ID = ENTITY__ID;
 
 	/**
-	 * The feature id for the '<em><b>PSensor</b></em>' reference.
+	 * The feature id for the '<em><b>Last Pos Update</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOCALIZABLE_OBJECT__PSENSOR = ENTITY_FEATURE_COUNT + 0;
+	int LOCALIZABLE_OBJECT__LAST_POS_UPDATE = ENTITY_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Current Placing</b></em>' reference.
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOCALIZABLE_OBJECT__CURRENT_PLACING = ENTITY_FEATURE_COUNT + 1;
+	int LOCALIZABLE_OBJECT__SENSOR_TYPE = ENTITY_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Last Pos Update</b></em>' attribute.
+	 * The feature id for the '<em><b>Agent</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOCALIZABLE_OBJECT__LAST_POS_UPDATE = ENTITY_FEATURE_COUNT + 2;
+	int LOCALIZABLE_OBJECT__AGENT = ENTITY_FEATURE_COUNT + 2;
 
 	/**
-	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * The feature id for the '<em><b>Current Placing</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOCALIZABLE_OBJECT__TYPE = ENTITY_FEATURE_COUNT + 3;
+	int LOCALIZABLE_OBJECT__CURRENT_PLACING = ENTITY_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Localizable Object</em>' class.
@@ -241,70 +223,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	int LOCALIZABLE_OBJECT_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
 
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionSensorImpl <em>Position Sensor</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionSensorImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPositionSensor()
-	 * @generated
-	 */
-	int POSITION_SENSOR = 3;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_SENSOR__ID = ENTITY__ID;
-
-	/**
-	 * The feature id for the '<em><b>Agent</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_SENSOR__AGENT = ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>LObject</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_SENSOR__LOBJECT = ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_SENSOR__TYPE = ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Position Sensor</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_SENSOR_FEATURE_COUNT = ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of operations of the '<em>Position Sensor</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_SENSOR_OPERATION_COUNT = ENTITY_OPERATION_COUNT + 0;
-
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PlacingImpl <em>Placing</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -313,16 +231,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPlacing()
 	 * @generated
 	 */
-	int PLACING = 4;
-
-	/**
-	 * The feature id for the '<em><b>LObject</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLACING__LOBJECT = 0;
+	int PLACING = 3;
 
 	/**
 	 * The feature id for the '<em><b>Position</b></em>' reference.
@@ -331,7 +240,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PLACING__POSITION = 1;
+	int PLACING__POSITION = 0;
 
 	/**
 	 * The feature id for the '<em><b>Orientation</b></em>' reference.
@@ -340,7 +249,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PLACING__ORIENTATION = 2;
+	int PLACING__ORIENTATION = 1;
 
 	/**
 	 * The number of structural features of the '<em>Placing</em>' class.
@@ -349,7 +258,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PLACING_FEATURE_COUNT = 3;
+	int PLACING_FEATURE_COUNT = 2;
 
 	/**
 	 * The number of operations of the '<em>Placing</em>' class.
@@ -368,7 +277,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPosition()
 	 * @generated
 	 */
-	int POSITION = 5;
+	int POSITION = 4;
 
 	/**
 	 * The feature id for the '<em><b>Accuracy</b></em>' reference.
@@ -380,151 +289,96 @@ public interface IPos_DatamodelPackage extends EPackage {
 	int POSITION__ACCURACY = 0;
 
 	/**
-	 * The number of structural features of the '<em>Position</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Position</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.OrientationImpl <em>Orientation</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.OrientationImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getOrientation()
-	 * @generated
-	 */
-	int ORIENTATION = 6;
-
-	/**
-	 * The number of structural features of the '<em>Orientation</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ORIENTATION_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Orientation</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ORIENTATION_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AbsolutePositionImpl <em>Absolute Position</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.AbsolutePositionImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getAbsolutePosition()
-	 * @generated
-	 */
-	int ABSOLUTE_POSITION = 7;
-
-	/**
-	 * The feature id for the '<em><b>Accuracy</b></em>' reference.
+	 * The feature id for the '<em><b>Point</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSOLUTE_POSITION__ACCURACY = POSITION__ACCURACY;
+	int POSITION__POINT = 1;
 
 	/**
-	 * The feature id for the '<em><b>Point</b></em>' reference.
+	 * The feature id for the '<em><b>Reference System</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSOLUTE_POSITION__POINT = POSITION_FEATURE_COUNT + 0;
+	int POSITION__REFERENCE_SYSTEM = 2;
 
 	/**
-	 * The number of structural features of the '<em>Absolute Position</em>' class.
+	 * The number of structural features of the '<em>Position</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSOLUTE_POSITION_FEATURE_COUNT = POSITION_FEATURE_COUNT + 1;
+	int POSITION_FEATURE_COUNT = 3;
 
 	/**
-	 * The number of operations of the '<em>Absolute Position</em>' class.
+	 * The number of operations of the '<em>Position</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSOLUTE_POSITION_OPERATION_COUNT = POSITION_OPERATION_COUNT + 0;
+	int POSITION_OPERATION_COUNT = 0;
 
 	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RelativePositionImpl <em>Relative Position</em>}' class.
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.OrientationImpl <em>Orientation</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.RelativePositionImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getRelativePosition()
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.OrientationImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getOrientation()
 	 * @generated
 	 */
-	int RELATIVE_POSITION = 8;
+	int ORIENTATION = 5;
 
 	/**
-	 * The feature id for the '<em><b>Accuracy</b></em>' reference.
+	 * The number of structural features of the '<em>Orientation</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RELATIVE_POSITION__ACCURACY = POSITION__ACCURACY;
+	int ORIENTATION_FEATURE_COUNT = 0;
 
 	/**
-	 * The feature id for the '<em><b>Reference</b></em>' reference.
+	 * The number of operations of the '<em>Orientation</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RELATIVE_POSITION__REFERENCE = POSITION_FEATURE_COUNT + 0;
+	int ORIENTATION_OPERATION_COUNT = 0;
 
 	/**
-	 * The feature id for the '<em><b>Point</b></em>' reference.
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PointImpl <em>Point</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.PointImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPoint()
 	 * @generated
-	 * @ordered
 	 */
-	int RELATIVE_POSITION__POINT = POSITION_FEATURE_COUNT + 1;
+	int POINT = 17;
 
 	/**
-	 * The number of structural features of the '<em>Relative Position</em>' class.
+	 * The number of structural features of the '<em>Point</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RELATIVE_POSITION_FEATURE_COUNT = POSITION_FEATURE_COUNT + 2;
+	int POINT_FEATURE_COUNT = 0;
 
 	/**
-	 * The number of operations of the '<em>Relative Position</em>' class.
+	 * The number of operations of the '<em>Point</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RELATIVE_POSITION_OPERATION_COUNT = POSITION_OPERATION_COUNT + 0;
+	int POINT_OPERATION_COUNT = 0;
 
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WGS84PointImpl <em>WGS84 Point</em>}' class.
@@ -534,7 +388,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getWGS84Point()
 	 * @generated
 	 */
-	int WGS84_POINT = 9;
+	int WGS84_POINT = 6;
 
 	/**
 	 * The feature id for the '<em><b>Longitude</b></em>' attribute.
@@ -543,7 +397,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int WGS84_POINT__LONGITUDE = 0;
+	int WGS84_POINT__LONGITUDE = POINT_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Latitude</b></em>' attribute.
@@ -552,7 +406,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int WGS84_POINT__LATITUDE = 1;
+	int WGS84_POINT__LATITUDE = POINT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Altitude</b></em>' attribute.
@@ -561,7 +415,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int WGS84_POINT__ALTITUDE = 2;
+	int WGS84_POINT__ALTITUDE = POINT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>WGS84 Point</em>' class.
@@ -570,7 +424,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int WGS84_POINT_FEATURE_COUNT = 3;
+	int WGS84_POINT_FEATURE_COUNT = POINT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>WGS84 Point</em>' class.
@@ -579,7 +433,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int WGS84_POINT_OPERATION_COUNT = 0;
+	int WGS84_POINT_OPERATION_COUNT = POINT_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AccuracyImpl <em>Accuracy</em>}' class.
@@ -589,7 +443,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getAccuracy()
 	 * @generated
 	 */
-	int ACCURACY = 10;
+	int ACCURACY = 7;
 
 	/**
 	 * The number of structural features of the '<em>Accuracy</em>' class.
@@ -609,34 +463,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	int ACCURACY_OPERATION_COUNT = 0;
 
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PointImpl <em>Point</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.PointImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPoint()
-	 * @generated
-	 */
-	int POINT = 21;
-
-	/**
-	 * The number of structural features of the '<em>Point</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POINT_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Point</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POINT_OPERATION_COUNT = 0;
-
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.Point2DImpl <em>Point2 D</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -645,7 +471,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPoint2D()
 	 * @generated
 	 */
-	int POINT2_D = 11;
+	int POINT2_D = 8;
 
 	/**
 	 * The feature id for the '<em><b>X</b></em>' attribute.
@@ -691,7 +517,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPoint3D()
 	 * @generated
 	 */
-	int POINT3_D = 12;
+	int POINT3_D = 9;
 
 	/**
 	 * The feature id for the '<em><b>X</b></em>' attribute.
@@ -746,7 +572,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getReferenceSystem()
 	 * @generated
 	 */
-	int REFERENCE_SYSTEM = 13;
+	int REFERENCE_SYSTEM = 10;
 
 	/**
 	 * The feature id for the '<em><b>Origin</b></em>' reference.
@@ -801,16 +627,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getZone()
 	 * @generated
 	 */
-	int ZONE = 14;
+	int ZONE = 11;
 
 	/**
-	 * The feature id for the '<em><b>Origin</b></em>' reference.
+	 * The feature id for the '<em><b>Space</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ZONE__ORIGIN = REFERENCE_SYSTEM__ORIGIN;
+	int ZONE__SPACE = 0;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -819,7 +645,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ZONE__NAME = REFERENCE_SYSTEM__NAME;
+	int ZONE__NAME = 1;
 
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
@@ -828,16 +654,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ZONE__ID = REFERENCE_SYSTEM__ID;
-
-	/**
-	 * The feature id for the '<em><b>Space</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ZONE__SPACE = REFERENCE_SYSTEM_FEATURE_COUNT + 0;
+	int ZONE__ID = 2;
 
 	/**
 	 * The number of structural features of the '<em>Zone</em>' class.
@@ -846,7 +663,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ZONE_FEATURE_COUNT = REFERENCE_SYSTEM_FEATURE_COUNT + 1;
+	int ZONE_FEATURE_COUNT = 3;
 
 	/**
 	 * The number of operations of the '<em>Zone</em>' class.
@@ -855,7 +672,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ZONE_OPERATION_COUNT = REFERENCE_SYSTEM_OPERATION_COUNT + 0;
+	int ZONE_OPERATION_COUNT = 0;
 
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MapTypeImpl <em>Map Type</em>}' class.
@@ -865,7 +682,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMapType()
 	 * @generated
 	 */
-	int MAP_TYPE = 17;
+	int MAP_TYPE = 14;
 
 	/**
 	 * The number of structural features of the '<em>Map Type</em>' class.
@@ -893,7 +710,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getZoneMap()
 	 * @generated
 	 */
-	int ZONE_MAP = 15;
+	int ZONE_MAP = 12;
 
 	/**
 	 * The feature id for the '<em><b>Zone</b></em>' containment reference list.
@@ -930,7 +747,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getSpace()
 	 * @generated
 	 */
-	int SPACE = 16;
+	int SPACE = 13;
 
 	/**
 	 * The feature id for the '<em><b>X</b></em>' attribute.
@@ -960,50 +777,31 @@ public interface IPos_DatamodelPackage extends EPackage {
 	int SPACE__Z = 2;
 
 	/**
-	 * The number of structural features of the '<em>Space</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SPACE_FEATURE_COUNT = 3;
-
-	/**
-	 * The number of operations of the '<em>Space</em>' class.
+	 * The feature id for the '<em><b>Centre Point</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SPACE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.NetworkInterfaceImpl <em>Network Interface</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.NetworkInterfaceImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getNetworkInterface()
-	 * @generated
-	 */
-	int NETWORK_INTERFACE = 18;
+	int SPACE__CENTRE_POINT = 3;
 
 	/**
-	 * The number of structural features of the '<em>Network Interface</em>' class.
+	 * The number of structural features of the '<em>Space</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NETWORK_INTERFACE_FEATURE_COUNT = 0;
+	int SPACE_FEATURE_COUNT = 4;
 
 	/**
-	 * The number of operations of the '<em>Network Interface</em>' class.
+	 * The number of operations of the '<em>Space</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NETWORK_INTERFACE_OPERATION_COUNT = 0;
+	int SPACE_OPERATION_COUNT = 0;
 
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.QuaternionImpl <em>Quaternion</em>}' class.
@@ -1013,7 +811,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getQuaternion()
 	 * @generated
 	 */
-	int QUATERNION = 19;
+	int QUATERNION = 15;
 
 	/**
 	 * The feature id for the '<em><b>X</b></em>' attribute.
@@ -1077,7 +875,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getGaussian()
 	 * @generated
 	 */
-	int GAUSSIAN = 20;
+	int GAUSSIAN = 16;
 
 	/**
 	 * The feature id for the '<em><b>Confidence Interval</b></em>' attribute.
@@ -1107,41 +905,41 @@ public interface IPos_DatamodelPackage extends EPackage {
 	int GAUSSIAN_OPERATION_COUNT = ACCURACY_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataImpl <em>Rawdata</em>}' class.
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl <em>Rawdata Event</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getRawdata()
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getRawdataEvent()
 	 * @generated
 	 */
-	int RAWDATA = 22;
+	int RAWDATA_EVENT = 18;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RAWDATA__SENSOR_ID = 0;
+	int RAWDATA_EVENT__TIME_STAMP = 0;
 
 	/**
-	 * The number of structural features of the '<em>Rawdata</em>' class.
+	 * The number of structural features of the '<em>Rawdata Event</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RAWDATA_FEATURE_COUNT = 1;
+	int RAWDATA_EVENT_FEATURE_COUNT = 1;
 
 	/**
-	 * The number of operations of the '<em>Rawdata</em>' class.
+	 * The number of operations of the '<em>Rawdata Event</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RAWDATA_OPERATION_COUNT = 0;
+	int RAWDATA_EVENT_OPERATION_COUNT = 0;
 
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ProximityImpl <em>Proximity</em>}' class.
@@ -1151,16 +949,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getProximity()
 	 * @generated
 	 */
-	int PROXIMITY = 23;
+	int PROXIMITY = 19;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROXIMITY__SENSOR_ID = RAWDATA__SENSOR_ID;
+	int PROXIMITY__TIME_STAMP = RAWDATA_EVENT__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
@@ -1169,7 +967,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PROXIMITY__TAG_ID = RAWDATA_FEATURE_COUNT + 0;
+	int PROXIMITY__TAG_ID = RAWDATA_EVENT_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Type</b></em>' attribute.
@@ -1178,7 +976,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PROXIMITY__TYPE = RAWDATA_FEATURE_COUNT + 1;
+	int PROXIMITY__TYPE = RAWDATA_EVENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Scanner Id</b></em>' attribute.
@@ -1187,7 +985,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PROXIMITY__SCANNER_ID = RAWDATA_FEATURE_COUNT + 2;
+	int PROXIMITY__SCANNER_ID = RAWDATA_EVENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Proximity</em>' class.
@@ -1196,7 +994,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PROXIMITY_FEATURE_COUNT = RAWDATA_FEATURE_COUNT + 3;
+	int PROXIMITY_FEATURE_COUNT = RAWDATA_EVENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Proximity</em>' class.
@@ -1205,7 +1003,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PROXIMITY_OPERATION_COUNT = RAWDATA_OPERATION_COUNT + 0;
+	int PROXIMITY_OPERATION_COUNT = RAWDATA_EVENT_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RFIDImpl <em>RFID</em>}' class.
@@ -1215,16 +1013,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getRFID()
 	 * @generated
 	 */
-	int RFID = 24;
+	int RFID = 20;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RFID__SENSOR_ID = PROXIMITY__SENSOR_ID;
+	int RFID__TIME_STAMP = PROXIMITY__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
@@ -1288,16 +1086,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getNFC()
 	 * @generated
 	 */
-	int NFC = 25;
+	int NFC = 21;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NFC__SENSOR_ID = PROXIMITY__SENSOR_ID;
+	int NFC__TIME_STAMP = PROXIMITY__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
@@ -1361,16 +1159,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getIMU()
 	 * @generated
 	 */
-	int IMU = 26;
+	int IMU = 22;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int IMU__SENSOR_ID = RAWDATA__SENSOR_ID;
+	int IMU__TIME_STAMP = RAWDATA_EVENT__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Angularrate</b></em>' reference.
@@ -1379,7 +1177,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int IMU__ANGULARRATE = RAWDATA_FEATURE_COUNT + 0;
+	int IMU__ANGULARRATE = RAWDATA_EVENT_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Acceleration</b></em>' reference.
@@ -1388,7 +1186,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int IMU__ACCELERATION = RAWDATA_FEATURE_COUNT + 1;
+	int IMU__ACCELERATION = RAWDATA_EVENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMU__SENSOR_ID = RAWDATA_EVENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>IMU</em>' class.
@@ -1397,7 +1204,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int IMU_FEATURE_COUNT = RAWDATA_FEATURE_COUNT + 2;
+	int IMU_FEATURE_COUNT = RAWDATA_EVENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>IMU</em>' class.
@@ -1406,45 +1213,44 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int IMU_OPERATION_COUNT = RAWDATA_OPERATION_COUNT + 0;
+	int IMU_OPERATION_COUNT = RAWDATA_EVENT_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AngularRateImpl <em>Angular Rate</em>}' class.
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AccelerationImpl <em>Acceleration</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.AngularRateImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getAngularRate()
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.AccelerationImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getAcceleration()
 	 * @generated
 	 */
-	int ANGULAR_RATE = 27;
+	int ACCELERATION = 23;
 
 	/**
-	 * The number of structural features of the '<em>Angular Rate</em>' class.
+	 * The feature id for the '<em><b>X</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ANGULAR_RATE_FEATURE_COUNT = 0;
+	int ACCELERATION__X = 0;
 
 	/**
-	 * The number of operations of the '<em>Angular Rate</em>' class.
+	 * The feature id for the '<em><b>Y</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ANGULAR_RATE_OPERATION_COUNT = 0;
+	int ACCELERATION__Y = 1;
 
 	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AccelerationImpl <em>Acceleration</em>}' class.
+	 * The feature id for the '<em><b>Z</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.AccelerationImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getAcceleration()
 	 * @generated
+	 * @ordered
 	 */
-	int ACCELERATION = 28;
+	int ACCELERATION__Z = 2;
 
 	/**
 	 * The number of structural features of the '<em>Acceleration</em>' class.
@@ -1453,7 +1259,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ACCELERATION_FEATURE_COUNT = 0;
+	int ACCELERATION_FEATURE_COUNT = 3;
 
 	/**
 	 * The number of operations of the '<em>Acceleration</em>' class.
@@ -1472,16 +1278,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getBeacon()
 	 * @generated
 	 */
-	int BEACON = 29;
+	int BEACON = 24;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BEACON__SENSOR_ID = RAWDATA__SENSOR_ID;
+	int BEACON__TIME_STAMP = RAWDATA_EVENT__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Distances</b></em>' attribute.
@@ -1490,7 +1296,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int BEACON__DISTANCES = RAWDATA_FEATURE_COUNT + 0;
+	int BEACON__DISTANCES = RAWDATA_EVENT_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Type</b></em>' attribute.
@@ -1499,7 +1305,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int BEACON__TYPE = RAWDATA_FEATURE_COUNT + 1;
+	int BEACON__TYPE = RAWDATA_EVENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BEACON__SENSOR_ID = RAWDATA_EVENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Beacon</em>' class.
@@ -1508,7 +1323,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int BEACON_FEATURE_COUNT = RAWDATA_FEATURE_COUNT + 2;
+	int BEACON_FEATURE_COUNT = RAWDATA_EVENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Beacon</em>' class.
@@ -1517,7 +1332,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int BEACON_OPERATION_COUNT = RAWDATA_OPERATION_COUNT + 0;
+	int BEACON_OPERATION_COUNT = RAWDATA_EVENT_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl <em>Position Event</em>}' class.
@@ -1527,192 +1342,61 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPositionEvent()
 	 * @generated
 	 */
-	int POSITION_EVENT = 30;
+	int POSITION_EVENT = 25;
 
 	/**
-	 * The feature id for the '<em><b>Placing</b></em>' reference.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int POSITION_EVENT__PLACING = 0;
+	int POSITION_EVENT__TIME_STAMP = 0;
 
 	/**
-	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * The feature id for the '<em><b>LObject Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int POSITION_EVENT__TIME_STAMP = 1;
+	int POSITION_EVENT__LOBJECT_ID = 1;
 
 	/**
-	 * The number of structural features of the '<em>Position Event</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_EVENT_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Position Event</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int POSITION_EVENT_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl <em>Rawdata Event</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getRawdataEvent()
-	 * @generated
-	 */
-	int RAWDATA_EVENT = 31;
-
-	/**
-	 * The feature id for the '<em><b>Rawdata</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RAWDATA_EVENT__RAWDATA = 0;
-
-	/**
-	 * The number of structural features of the '<em>Rawdata Event</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RAWDATA_EVENT_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Rawdata Event</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RAWDATA_EVENT_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.TrackingRequestImpl <em>Tracking Request</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.TrackingRequestImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getTrackingRequest()
-	 * @generated
-	 */
-	int TRACKING_REQUEST = 32;
-
-	/**
-	 * The number of structural features of the '<em>Tracking Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRACKING_REQUEST_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Tracking Request</em>' class.
+	 * The feature id for the '<em><b>Zonedescriptors</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TRACKING_REQUEST_OPERATION_COUNT = 0;
+	int POSITION_EVENT__ZONEDESCRIPTORS = 2;
 
 	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MonitoringRequestImpl <em>Monitoring Request</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.MonitoringRequestImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMonitoringRequest()
-	 * @generated
-	 */
-	int MONITORING_REQUEST = 33;
-
-	/**
-	 * The number of structural features of the '<em>Monitoring Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MONITORING_REQUEST_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Monitoring Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MONITORING_REQUEST_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelUpdateRequestImpl <em>World Model Update Request</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelUpdateRequestImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getWorldModelUpdateRequest()
-	 * @generated
-	 */
-	int WORLD_MODEL_UPDATE_REQUEST = 34;
-
-	/**
-	 * The number of structural features of the '<em>World Model Update Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WORLD_MODEL_UPDATE_REQUEST_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>World Model Update Request</em>' class.
+	 * The feature id for the '<em><b>Placing</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int WORLD_MODEL_UPDATE_REQUEST_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageRequestImpl <em>Data Storage Request</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageRequestImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getDataStorageRequest()
-	 * @generated
-	 */
-	int DATA_STORAGE_REQUEST = 35;
+	int POSITION_EVENT__PLACING = 3;
 
 	/**
-	 * The number of structural features of the '<em>Data Storage Request</em>' class.
+	 * The number of structural features of the '<em>Position Event</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_STORAGE_REQUEST_FEATURE_COUNT = 0;
+	int POSITION_EVENT_FEATURE_COUNT = 4;
 
 	/**
-	 * The number of operations of the '<em>Data Storage Request</em>' class.
+	 * The number of operations of the '<em>Position Event</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_STORAGE_REQUEST_OPERATION_COUNT = 0;
+	int POSITION_EVENT_OPERATION_COUNT = 0;
 
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConfigurationImpl <em>Event Filter Configuration</em>}' class.
@@ -1722,7 +1406,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getEventFilterConfiguration()
 	 * @generated
 	 */
-	int EVENT_FILTER_CONFIGURATION = 36;
+	int EVENT_FILTER_CONFIGURATION = 26;
 
 	/**
 	 * The feature id for the '<em><b>Position Ambiguity Strategy</b></em>' attribute.
@@ -1778,90 +1462,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	int EVENT_FILTER_CONFIGURATION_OPERATION_COUNT = 0;
 
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelQueryRequestImpl <em>World Model Query Request</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelQueryRequestImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getWorldModelQueryRequest()
-	 * @generated
-	 */
-	int WORLD_MODEL_QUERY_REQUEST = 37;
-
-	/**
-	 * The number of structural features of the '<em>World Model Query Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WORLD_MODEL_QUERY_REQUEST_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>World Model Query Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int WORLD_MODEL_QUERY_REQUEST_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryRequestImpl <em>Data Storage Query Request</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryRequestImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getDataStorageQueryRequest()
-	 * @generated
-	 */
-	int DATA_STORAGE_QUERY_REQUEST = 38;
-
-	/**
-	 * The number of structural features of the '<em>Data Storage Query Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_STORAGE_QUERY_REQUEST_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Data Storage Query Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DATA_STORAGE_QUERY_REQUEST_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AgentRegistrationRequestImpl <em>Agent Registration Request</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.AgentRegistrationRequestImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getAgentRegistrationRequest()
-	 * @generated
-	 */
-	int AGENT_REGISTRATION_REQUEST = 39;
-
-	/**
-	 * The number of structural features of the '<em>Agent Registration Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int AGENT_REGISTRATION_REQUEST_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Agent Registration Request</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int AGENT_REGISTRATION_REQUEST_OPERATION_COUNT = 0;
-
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MonitoringTaskImpl <em>Monitoring Task</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -1870,7 +1470,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMonitoringTask()
 	 * @generated
 	 */
-	int MONITORING_TASK = 40;
+	int MONITORING_TASK = 27;
 
 	/**
 	 * The feature id for the '<em><b>Eventfilterconfiguration</b></em>' reference.
@@ -1907,7 +1507,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getTrackingTask()
 	 * @generated
 	 */
-	int TRACKING_TASK = 41;
+	int TRACKING_TASK = 28;
 
 	/**
 	 * The feature id for the '<em><b>Eventfilterconfiguration</b></em>' reference.
@@ -1944,7 +1544,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getWorldModel()
 	 * @generated
 	 */
-	int WORLD_MODEL = 42;
+	int WORLD_MODEL = 29;
 
 	/**
 	 * The feature id for the '<em><b>Agent</b></em>' reference list.
@@ -1956,13 +1556,31 @@ public interface IPos_DatamodelPackage extends EPackage {
 	int WORLD_MODEL__AGENT = 0;
 
 	/**
-	 * The feature id for the '<em><b>Zonemap</b></em>' reference list.
+	 * The feature id for the '<em><b>Zone Map</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WORLD_MODEL__ZONE_MAP = 1;
+
+	/**
+	 * The feature id for the '<em><b>Pois</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WORLD_MODEL__POIS = 2;
+
+	/**
+	 * The feature id for the '<em><b>Reference System</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int WORLD_MODEL__ZONEMAP = 1;
+	int WORLD_MODEL__REFERENCE_SYSTEM = 3;
 
 	/**
 	 * The number of structural features of the '<em>World Model</em>' class.
@@ -1971,7 +1589,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int WORLD_MODEL_FEATURE_COUNT = 2;
+	int WORLD_MODEL_FEATURE_COUNT = 4;
 
 	/**
 	 * The number of operations of the '<em>World Model</em>' class.
@@ -1990,16 +1608,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getBarcode()
 	 * @generated
 	 */
-	int BARCODE = 43;
+	int BARCODE = 30;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BARCODE__SENSOR_ID = PROXIMITY__SENSOR_ID;
+	int BARCODE__TIME_STAMP = PROXIMITY__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
@@ -2054,16 +1672,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getOtherProx()
 	 * @generated
 	 */
-	int OTHER_PROX = 44;
+	int OTHER_PROX = 31;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OTHER_PROX__SENSOR_ID = PROXIMITY__SENSOR_ID;
+	int OTHER_PROX__TIME_STAMP = PROXIMITY__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Tag Id</b></em>' attribute.
@@ -2127,16 +1745,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getBluetooth()
 	 * @generated
 	 */
-	int BLUETOOTH = 45;
+	int BLUETOOTH = 32;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BLUETOOTH__SENSOR_ID = BEACON__SENSOR_ID;
+	int BLUETOOTH__TIME_STAMP = BEACON__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Distances</b></em>' attribute.
@@ -2156,6 +1774,15 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	int BLUETOOTH__TYPE = BEACON__TYPE;
 
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BLUETOOTH__SENSOR_ID = BEACON__SENSOR_ID;
+
 	/**
 	 * The feature id for the '<em><b>Rss</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -2191,16 +1818,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getUWB()
 	 * @generated
 	 */
-	int UWB = 46;
+	int UWB = 33;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int UWB__SENSOR_ID = BEACON__SENSOR_ID;
+	int UWB__TIME_STAMP = BEACON__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Distances</b></em>' attribute.
@@ -2221,50 +1848,31 @@ public interface IPos_DatamodelPackage extends EPackage {
 	int UWB__TYPE = BEACON__TYPE;
 
 	/**
-	 * The number of structural features of the '<em>UWB</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int UWB_FEATURE_COUNT = BEACON_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of operations of the '<em>UWB</em>' class.
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int UWB_OPERATION_COUNT = BEACON_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.SensorConfigurationRequestImpl <em>Sensor Configuration Request</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.SensorConfigurationRequestImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getSensorConfigurationRequest()
-	 * @generated
-	 */
-	int SENSOR_CONFIGURATION_REQUEST = 47;
+	int UWB__SENSOR_ID = BEACON__SENSOR_ID;
 
 	/**
-	 * The number of structural features of the '<em>Sensor Configuration Request</em>' class.
+	 * The number of structural features of the '<em>UWB</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SENSOR_CONFIGURATION_REQUEST_FEATURE_COUNT = 0;
+	int UWB_FEATURE_COUNT = BEACON_FEATURE_COUNT + 0;
 
 	/**
-	 * The number of operations of the '<em>Sensor Configuration Request</em>' class.
+	 * The number of operations of the '<em>UWB</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SENSOR_CONFIGURATION_REQUEST_OPERATION_COUNT = 0;
+	int UWB_OPERATION_COUNT = BEACON_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.OtherBeaconImpl <em>Other Beacon</em>}' class.
@@ -2274,16 +1882,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getOtherBeacon()
 	 * @generated
 	 */
-	int OTHER_BEACON = 48;
+	int OTHER_BEACON = 34;
 
 	/**
-	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OTHER_BEACON__SENSOR_ID = BEACON__SENSOR_ID;
+	int OTHER_BEACON__TIME_STAMP = BEACON__TIME_STAMP;
 
 	/**
 	 * The feature id for the '<em><b>Distances</b></em>' attribute.
@@ -2303,6 +1911,15 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	int OTHER_BEACON__TYPE = BEACON__TYPE;
 
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OTHER_BEACON__SENSOR_ID = BEACON__SENSOR_ID;
+
 	/**
 	 * The feature id for the '<em><b>Data</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -2331,87 +1948,87 @@ public interface IPos_DatamodelPackage extends EPackage {
 	int OTHER_BEACON_OPERATION_COUNT = BEACON_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ReferencePositionImpl <em>Reference Position</em>}' class.
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.POIImpl <em>POI</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.ReferencePositionImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getReferencePosition()
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.POIImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPOI()
 	 * @generated
 	 */
-	int REFERENCE_POSITION = 49;
+	int POI = 35;
 
 	/**
-	 * The feature id for the '<em><b>Position</b></em>' reference.
+	 * The feature id for the '<em><b>Placing</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERENCE_POSITION__POSITION = 0;
+	int POI__PLACING = 0;
 
 	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERENCE_POSITION__ID = 1;
+	int POI__DESCRIPTION = 1;
 
 	/**
-	 * The number of structural features of the '<em>Reference Position</em>' class.
+	 * The feature id for the '<em><b>Data</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERENCE_POSITION_FEATURE_COUNT = 2;
+	int POI__DATA = 2;
 
 	/**
-	 * The number of operations of the '<em>Reference Position</em>' class.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERENCE_POSITION_OPERATION_COUNT = 0;
+	int POI__ID = 3;
 
 	/**
-	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl <em>Event Filter Condition</em>}' class.
+	 * The number of structural features of the '<em>POI</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getEventFilterCondition()
 	 * @generated
+	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION = 50;
+	int POI_FEATURE_COUNT = 4;
 
 	/**
-	 * The feature id for the '<em><b>Time Condition</b></em>' attribute.
+	 * The number of operations of the '<em>POI</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__TIME_CONDITION = 0;
+	int POI_OPERATION_COUNT = 0;
 
 	/**
-	 * The feature id for the '<em><b>Category Condition</b></em>' attribute.
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl <em>Event Filter Condition</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getEventFilterCondition()
 	 * @generated
-	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__CATEGORY_CONDITION = 1;
+	int EVENT_FILTER_CONDITION = 36;
 
 	/**
-	 * The feature id for the '<em><b>Id Condition</b></em>' attribute.
+	 * The feature id for the '<em><b>Time Condition</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__ID_CONDITION = 2;
+	int EVENT_FILTER_CONDITION__TIME_CONDITION = 0;
 
 	/**
 	 * The feature id for the '<em><b>Accuracy Condition</b></em>' attribute.
@@ -2420,7 +2037,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__ACCURACY_CONDITION = 3;
+	int EVENT_FILTER_CONDITION__ACCURACY_CONDITION = 1;
 
 	/**
 	 * The feature id for the '<em><b>Position Condition</b></em>' attribute.
@@ -2429,7 +2046,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__POSITION_CONDITION = 4;
+	int EVENT_FILTER_CONDITION__POSITION_CONDITION = 2;
 
 	/**
 	 * The feature id for the '<em><b>Time Min Interval</b></em>' attribute.
@@ -2438,7 +2055,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__TIME_MIN_INTERVAL = 5;
+	int EVENT_FILTER_CONDITION__TIME_MIN_INTERVAL = 3;
 
 	/**
 	 * The feature id for the '<em><b>Position Delta</b></em>' attribute.
@@ -2447,7 +2064,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__POSITION_DELTA = 6;
+	int EVENT_FILTER_CONDITION__POSITION_DELTA = 4;
 
 	/**
 	 * The feature id for the '<em><b>Sensor Id Condition</b></em>' attribute.
@@ -2456,7 +2073,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__SENSOR_ID_CONDITION = 7;
+	int EVENT_FILTER_CONDITION__SENSOR_ID_CONDITION = 5;
 
 	/**
 	 * The feature id for the '<em><b>Filter Structure</b></em>' attribute.
@@ -2465,25 +2082,52 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__FILTER_STRUCTURE = 8;
+	int EVENT_FILTER_CONDITION__FILTER_STRUCTURE = 6;
 
 	/**
-	 * The feature id for the '<em><b>Position Condition Cell</b></em>' attribute.
+	 * The feature id for the '<em><b>Position Condition Cells</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION__POSITION_CONDITION_CELL = 9;
+	int EVENT_FILTER_CONDITION__POSITION_CONDITION_CELLS = 7;
 
 	/**
-	 * The number of structural features of the '<em>Event Filter Condition</em>' class.
+	 * The feature id for the '<em><b>Id Condition</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_FILTER_CONDITION_FEATURE_COUNT = 10;
+	int EVENT_FILTER_CONDITION__ID_CONDITION = 8;
+
+	/**
+	 * The feature id for the '<em><b>Category Condition</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_FILTER_CONDITION__CATEGORY_CONDITION = 9;
+
+	/**
+	 * The feature id for the '<em><b>Property Condition</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_FILTER_CONDITION__PROPERTY_CONDITION = 10;
+
+	/**
+	 * The number of structural features of the '<em>Event Filter Condition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_FILTER_CONDITION_FEATURE_COUNT = 11;
 
 	/**
 	 * The number of operations of the '<em>Event Filter Condition</em>' class.
@@ -2494,6 +2138,171 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	int EVENT_FILTER_CONDITION_OPERATION_COUNT = 0;
 
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneDescriptorImpl <em>Zone Descriptor</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneDescriptorImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getZoneDescriptor()
+	 * @generated
+	 */
+	int ZONE_DESCRIPTOR = 37;
+
+	/**
+	 * The feature id for the '<em><b>Zone Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ZONE_DESCRIPTOR__ZONE_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Notification Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ZONE_DESCRIPTOR__NOTIFICATION_TYPE = 1;
+
+	/**
+	 * The number of structural features of the '<em>Zone Descriptor</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ZONE_DESCRIPTOR_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Zone Descriptor</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ZONE_DESCRIPTOR_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryResponseImpl <em>Data Storage Query Response</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryResponseImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getDataStorageQueryResponse()
+	 * @generated
+	 */
+	int DATA_STORAGE_QUERY_RESPONSE = 38;
+
+	/**
+	 * The feature id for the '<em><b>Position Events</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORAGE_QUERY_RESPONSE__POSITION_EVENTS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Tracking Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID = 1;
+
+	/**
+	 * The number of structural features of the '<em>Data Storage Query Response</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORAGE_QUERY_RESPONSE_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Data Storage Query Response</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STORAGE_QUERY_RESPONSE_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl <em>Message Received Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMessageReceivedEvent()
+	 * @generated
+	 */
+	int MESSAGE_RECEIVED_EVENT = 39;
+
+	/**
+	 * The feature id for the '<em><b>Protocol Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Serialized Msg</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG = 1;
+
+	/**
+	 * The feature id for the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_RECEIVED_EVENT__AGENT_ID = 2;
+
+	/**
+	 * The feature id for the '<em><b>Extracted Attributes</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES = 3;
+
+	/**
+	 * The feature id for the '<em><b>Timestamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_RECEIVED_EVENT__TIMESTAMP = 4;
+
+	/**
+	 * The number of structural features of the '<em>Message Received Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_RECEIVED_EVENT_FEATURE_COUNT = 5;
+
+	/**
+	 * The number of operations of the '<em>Message Received Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MESSAGE_RECEIVED_EVENT_OPERATION_COUNT = 0;
+
 	/**
 	 * The meta object id for the '<em>String List</em>' data type.
 	 * <!-- begin-user-doc -->
@@ -2502,7 +2311,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getStringList()
 	 * @generated
 	 */
-	int STRING_LIST = 51;
+	int STRING_LIST = 40;
 
 	/**
 	 * The meta object id for the '<em>String Array</em>' data type.
@@ -2511,7 +2320,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getStringArray()
 	 * @generated
 	 */
-	int STRING_ARRAY = 52;
+	int STRING_ARRAY = 41;
 
 	/**
 	 * The meta object id for the '<em>Float Array3d</em>' data type.
@@ -2520,7 +2329,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getFloatArray3d()
 	 * @generated
 	 */
-	int FLOAT_ARRAY3D = 53;
+	int FLOAT_ARRAY3D = 42;
 
 	/**
 	 * The meta object id for the '<em>Boolean List</em>' data type.
@@ -2529,7 +2338,7 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getBooleanList()
 	 * @generated
 	 */
-	int BOOLEAN_LIST = 54;
+	int BOOLEAN_LIST = 43;
 
 	/**
 	 * The meta object id for the '<em>Float Array</em>' data type.
@@ -2538,61 +2347,67 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getFloatArray()
 	 * @generated
 	 */
-	int FLOAT_ARRAY = 55;
+	int FLOAT_ARRAY = 44;
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent <em>Agent</em>}'.
+	 * The meta object id for the '<em>Byte Array</em>' data type.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Agent</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Agent
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getByteArray()
 	 * @generated
 	 */
-	EClass getAgent();
+	int BYTE_ARRAY = 45;
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getName <em>Name</em>}'.
+	 * The meta object id for the '<em>List Of String Maps</em>' data type.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Agent#getName()
-	 * @see #getAgent()
+	 * @see java.util.LinkedList
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getListOfStringMaps()
 	 * @generated
 	 */
-	EAttribute getAgent_Name();
+	int LIST_OF_STRING_MAPS = 46;
 
 	/**
-	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getLObject <em>LObject</em>}'.
+	 * The meta object id for the '<em>Int Array</em>' data type.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>LObject</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Agent#getLObject()
-	 * @see #getAgent()
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getIntArray()
 	 * @generated
 	 */
-	EReference getAgent_LObject();
+	int INT_ARRAY = 47;
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent <em>Agent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Agent</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Agent
+	 * @generated
+	 */
+	EClass getAgent();
 
 	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getNetInt <em>Net Int</em>}'.
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getLObject <em>LObject</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Net Int</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Agent#getNetInt()
+	 * @return the meta object for the reference list '<em>LObject</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Agent#getLObject()
 	 * @see #getAgent()
 	 * @generated
 	 */
-	EReference getAgent_NetInt();
+	EReference getAgent_LObject();
 
 	/**
-	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getPSensors <em>PSensors</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent#getAgentType <em>Agent Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>PSensors</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Agent#getPSensors()
+	 * @return the meta object for the attribute '<em>Agent Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Agent#getAgentType()
 	 * @see #getAgent()
 	 * @generated
 	 */
-	EReference getAgent_PSensors();
+	EAttribute getAgent_AgentType();
 
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Entity <em>Entity</em>}'.
@@ -2625,28 +2440,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	EClass getLocalizableObject();
 
-	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getPSensor <em>PSensor</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>PSensor</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getPSensor()
-	 * @see #getLocalizableObject()
-	 * @generated
-	 */
-	EReference getLocalizableObject_PSensor();
-
-	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing <em>Current Placing</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Current Placing</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing()
-	 * @see #getLocalizableObject()
-	 * @generated
-	 */
-	EReference getLocalizableObject_CurrentPlacing();
-
 	/**
 	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getLastPosUpdate <em>Last Pos Update</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2659,58 +2452,37 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EAttribute getLocalizableObject_LastPosUpdate();
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getType <em>Type</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getSensorType <em>Sensor Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Type</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getType()
+	 * @return the meta object for the attribute '<em>Sensor Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getSensorType()
 	 * @see #getLocalizableObject()
 	 * @generated
 	 */
-	EAttribute getLocalizableObject_Type();
-
-	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor <em>Position Sensor</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Position Sensor</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor
-	 * @generated
-	 */
-	EClass getPositionSensor();
+	EAttribute getLocalizableObject_SensorType();
 
 	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getAgent <em>Agent</em>}'.
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getAgent <em>Agent</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Agent</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getAgent()
-	 * @see #getPositionSensor()
-	 * @generated
-	 */
-	EReference getPositionSensor_Agent();
-
-	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getLObject <em>LObject</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>LObject</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getLObject()
-	 * @see #getPositionSensor()
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getAgent()
+	 * @see #getLocalizableObject()
 	 * @generated
 	 */
-	EReference getPositionSensor_LObject();
+	EReference getLocalizableObject_Agent();
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getType <em>Type</em>}'.
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing <em>Current Placing</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Type</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getType()
-	 * @see #getPositionSensor()
+	 * @return the meta object for the reference '<em>Current Placing</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing()
+	 * @see #getLocalizableObject()
 	 * @generated
 	 */
-	EAttribute getPositionSensor_Type();
+	EReference getLocalizableObject_CurrentPlacing();
 
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Placing <em>Placing</em>}'.
@@ -2722,17 +2494,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	EClass getPlacing();
 
-	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.Placing#getLObject <em>LObject</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>LObject</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Placing#getLObject()
-	 * @see #getPlacing()
-	 * @generated
-	 */
-	EReference getPlacing_LObject();
-
 	/**
 	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.Placing#getPosition <em>Position</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2777,67 +2538,36 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EReference getPosition_Accuracy();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Orientation <em>Orientation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Orientation</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Orientation
-	 * @generated
-	 */
-	EClass getOrientation();
-
-	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition <em>Absolute Position</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Absolute Position</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition
-	 * @generated
-	 */
-	EClass getAbsolutePosition();
-
-	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition#getPoint <em>Point</em>}'.
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.Position#getPoint <em>Point</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Point</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition#getPoint()
-	 * @see #getAbsolutePosition()
-	 * @generated
-	 */
-	EReference getAbsolutePosition_Point();
-
-	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition <em>Relative Position</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Relative Position</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Position#getPoint()
+	 * @see #getPosition()
 	 * @generated
 	 */
-	EClass getRelativePosition();
+	EReference getPosition_Point();
 
 	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition#getReference <em>Reference</em>}'.
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.Position#getReferenceSystem <em>Reference System</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Reference</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition#getReference()
-	 * @see #getRelativePosition()
+	 * @return the meta object for the reference '<em>Reference System</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Position#getReferenceSystem()
+	 * @see #getPosition()
 	 * @generated
 	 */
-	EReference getRelativePosition_Reference();
+	EReference getPosition_ReferenceSystem();
 
 	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition#getPoint <em>Point</em>}'.
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Orientation <em>Orientation</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Point</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition#getPoint()
-	 * @see #getRelativePosition()
+	 * @return the meta object for class '<em>Orientation</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Orientation
 	 * @generated
 	 */
-	EReference getRelativePosition_Point();
+	EClass getOrientation();
 
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.WGS84Point <em>WGS84 Point</em>}'.
@@ -3031,6 +2761,28 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	EReference getZone_Space();
 
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Zone#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Zone#getName()
+	 * @see #getZone()
+	 * @generated
+	 */
+	EAttribute getZone_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Zone#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Zone#getId()
+	 * @see #getZone()
+	 * @generated
+	 */
+	EAttribute getZone_Id();
+
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneMap <em>Zone Map</em>}'.
 	 * <!-- begin-user-doc -->
@@ -3096,24 +2848,25 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EAttribute getSpace_Z();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MapType <em>Map Type</em>}'.
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.Space#getCentrePoint <em>Centre Point</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Map Type</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MapType
+	 * @return the meta object for the reference '<em>Centre Point</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Space#getCentrePoint()
+	 * @see #getSpace()
 	 * @generated
 	 */
-	EClass getMapType();
+	EReference getSpace_CentrePoint();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.NetworkInterface <em>Network Interface</em>}'.
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MapType <em>Map Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Network Interface</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.NetworkInterface
+	 * @return the meta object for class '<em>Map Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MapType
 	 * @generated
 	 */
-	EClass getNetworkInterface();
+	EClass getMapType();
 
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Quaternion <em>Quaternion</em>}'.
@@ -3201,25 +2954,25 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EClass getPoint();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Rawdata <em>Rawdata</em>}'.
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent <em>Rawdata Event</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Rawdata</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Rawdata
+	 * @return the meta object for class '<em>Rawdata Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent
 	 * @generated
 	 */
-	EClass getRawdata();
+	EClass getRawdataEvent();
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Rawdata#getSensorId <em>Sensor Id</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent#getTimeStamp <em>Time Stamp</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Sensor Id</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Rawdata#getSensorId()
-	 * @see #getRawdata()
+	 * @return the meta object for the attribute '<em>Time Stamp</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent#getTimeStamp()
+	 * @see #getRawdataEvent()
 	 * @generated
 	 */
-	EAttribute getRawdata_SensorId();
+	EAttribute getRawdataEvent_TimeStamp();
 
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Proximity <em>Proximity</em>}'.
@@ -3339,14 +3092,15 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EReference getIMU_Acceleration();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.AngularRate <em>Angular Rate</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.IMU#getSensorId <em>Sensor Id</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Angular Rate</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.AngularRate
+	 * @return the meta object for the attribute '<em>Sensor Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IMU#getSensorId()
+	 * @see #getIMU()
 	 * @generated
 	 */
-	EClass getAngularRate();
+	EAttribute getIMU_SensorId();
 
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration <em>Acceleration</em>}'.
@@ -3358,6 +3112,39 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	EClass getAcceleration();
 
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getX <em>X</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>X</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getX()
+	 * @see #getAcceleration()
+	 * @generated
+	 */
+	EAttribute getAcceleration_X();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getY <em>Y</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Y</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getY()
+	 * @see #getAcceleration()
+	 * @generated
+	 */
+	EAttribute getAcceleration_Y();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getZ <em>Z</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Z</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Acceleration#getZ()
+	 * @see #getAcceleration()
+	 * @generated
+	 */
+	EAttribute getAcceleration_Z();
+
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Beacon <em>Beacon</em>}'.
 	 * <!-- begin-user-doc -->
@@ -3390,6 +3177,17 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	EAttribute getBeacon_Type();
 
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Beacon#getSensorId <em>Sensor Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensor Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Beacon#getSensorId()
+	 * @see #getBeacon()
+	 * @generated
+	 */
+	EAttribute getBeacon_SensorId();
+
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent <em>Position Event</em>}'.
 	 * <!-- begin-user-doc -->
@@ -3423,65 +3221,26 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EAttribute getPositionEvent_TimeStamp();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent <em>Rawdata Event</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getLObjectId <em>LObject Id</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Rawdata Event</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent
-	 * @generated
-	 */
-	EClass getRawdataEvent();
-
-	/**
-	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent#getRawdata <em>Rawdata</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Rawdata</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent#getRawdata()
-	 * @see #getRawdataEvent()
-	 * @generated
-	 */
-	EReference getRawdataEvent_Rawdata();
-
-	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.TrackingRequest <em>Tracking Request</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Tracking Request</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.TrackingRequest
-	 * @generated
-	 */
-	EClass getTrackingRequest();
-
-	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MonitoringRequest <em>Monitoring Request</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Monitoring Request</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MonitoringRequest
-	 * @generated
-	 */
-	EClass getMonitoringRequest();
-
-	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModelUpdateRequest <em>World Model Update Request</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>World Model Update Request</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.WorldModelUpdateRequest
+	 * @return the meta object for the attribute '<em>LObject Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getLObjectId()
+	 * @see #getPositionEvent()
 	 * @generated
 	 */
-	EClass getWorldModelUpdateRequest();
+	EAttribute getPositionEvent_LObjectId();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageRequest <em>Data Storage Request</em>}'.
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getZonedescriptors <em>Zonedescriptors</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Data Storage Request</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.DataStorageRequest
+	 * @return the meta object for the reference list '<em>Zonedescriptors</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getZonedescriptors()
+	 * @see #getPositionEvent()
 	 * @generated
 	 */
-	EClass getDataStorageRequest();
+	EReference getPositionEvent_Zonedescriptors();
 
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration <em>Event Filter Configuration</em>}'.
@@ -3516,56 +3275,26 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EAttribute getEventFilterConfiguration_PositionAmbiguityParameters();
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration#getFilterCriteria <em>Filter Criteria</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Filter Criteria</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration#getFilterCriteria()
-	 * @see #getEventFilterConfiguration()
-	 * @generated
-	 */
-	EAttribute getEventFilterConfiguration_FilterCriteria();
-
-	/**
-	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration#getEventfiltercondition <em>Eventfiltercondition</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Eventfiltercondition</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration#getEventfiltercondition()
-	 * @see #getEventFilterConfiguration()
-	 * @generated
-	 */
-	EReference getEventFilterConfiguration_Eventfiltercondition();
-
-	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModelQueryRequest <em>World Model Query Request</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>World Model Query Request</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.WorldModelQueryRequest
-	 * @generated
-	 */
-	EClass getWorldModelQueryRequest();
-
-	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryRequest <em>Data Storage Query Request</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration#getFilterCriteria <em>Filter Criteria</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Data Storage Query Request</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryRequest
+	 * @return the meta object for the attribute '<em>Filter Criteria</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration#getFilterCriteria()
+	 * @see #getEventFilterConfiguration()
 	 * @generated
 	 */
-	EClass getDataStorageQueryRequest();
+	EAttribute getEventFilterConfiguration_FilterCriteria();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.AgentRegistrationRequest <em>Agent Registration Request</em>}'.
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration#getEventfiltercondition <em>Eventfiltercondition</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Agent Registration Request</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.AgentRegistrationRequest
+	 * @return the meta object for the reference list '<em>Eventfiltercondition</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration#getEventfiltercondition()
+	 * @see #getEventFilterConfiguration()
 	 * @generated
 	 */
-	EClass getAgentRegistrationRequest();
+	EReference getEventFilterConfiguration_Eventfiltercondition();
 
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MonitoringTask <em>Monitoring Task</em>}'.
@@ -3631,15 +3360,37 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EReference getWorldModel_Agent();
 
 	/**
-	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getZonemap <em>Zonemap</em>}'.
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getZoneMap <em>Zone Map</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Zone Map</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getZoneMap()
+	 * @see #getWorldModel()
+	 * @generated
+	 */
+	EReference getWorldModel_ZoneMap();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getPois <em>Pois</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Pois</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getPois()
+	 * @see #getWorldModel()
+	 * @generated
+	 */
+	EReference getWorldModel_Pois();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getReferenceSystem <em>Reference System</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Zonemap</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getZonemap()
+	 * @return the meta object for the reference list '<em>Reference System</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getReferenceSystem()
 	 * @see #getWorldModel()
 	 * @generated
 	 */
-	EReference getWorldModel_Zonemap();
+	EReference getWorldModel_ReferenceSystem();
 
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Barcode <em>Barcode</em>}'.
@@ -3703,16 +3454,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	EClass getUWB();
 
-	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.SensorConfigurationRequest <em>Sensor Configuration Request</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Sensor Configuration Request</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.SensorConfigurationRequest
-	 * @generated
-	 */
-	EClass getSensorConfigurationRequest();
-
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OtherBeacon <em>Other Beacon</em>}'.
 	 * <!-- begin-user-doc -->
@@ -3735,79 +3476,79 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EAttribute getOtherBeacon_Data();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition <em>Reference Position</em>}'.
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI <em>POI</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Reference Position</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition
+	 * @return the meta object for class '<em>POI</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.POI
 	 * @generated
 	 */
-	EClass getReferencePosition();
+	EClass getPOI();
 
 	/**
-	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition#getPosition <em>Position</em>}'.
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getPlacing <em>Placing</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Position</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition#getPosition()
-	 * @see #getReferencePosition()
+	 * @return the meta object for the reference '<em>Placing</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.POI#getPlacing()
+	 * @see #getPOI()
 	 * @generated
 	 */
-	EReference getReferencePosition_Position();
+	EReference getPOI_Placing();
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition#getId <em>Id</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getDescription <em>Description</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Id</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition#getId()
-	 * @see #getReferencePosition()
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.POI#getDescription()
+	 * @see #getPOI()
 	 * @generated
 	 */
-	EAttribute getReferencePosition_Id();
+	EAttribute getPOI_Description();
 
 	/**
-	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition <em>Event Filter Condition</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getData <em>Data</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Event Filter Condition</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition
+	 * @return the meta object for the attribute '<em>Data</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.POI#getData()
+	 * @see #getPOI()
 	 * @generated
 	 */
-	EClass getEventFilterCondition();
+	EAttribute getPOI_Data();
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getTimeCondition <em>Time Condition</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getId <em>Id</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Time Condition</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getTimeCondition()
-	 * @see #getEventFilterCondition()
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.POI#getId()
+	 * @see #getPOI()
 	 * @generated
 	 */
-	EAttribute getEventFilterCondition_TimeCondition();
+	EAttribute getPOI_Id();
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getCategoryCondition <em>Category Condition</em>}'.
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition <em>Event Filter Condition</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Category Condition</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getCategoryCondition()
-	 * @see #getEventFilterCondition()
+	 * @return the meta object for class '<em>Event Filter Condition</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition
 	 * @generated
 	 */
-	EAttribute getEventFilterCondition_CategoryCondition();
+	EClass getEventFilterCondition();
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getIdCondition <em>Id Condition</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getTimeCondition <em>Time Condition</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Id Condition</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getIdCondition()
+	 * @return the meta object for the attribute '<em>Time Condition</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getTimeCondition()
 	 * @see #getEventFilterCondition()
 	 * @generated
 	 */
-	EAttribute getEventFilterCondition_IdCondition();
+	EAttribute getEventFilterCondition_TimeCondition();
 
 	/**
 	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getAccuracyCondition <em>Accuracy Condition</em>}'.
@@ -3876,15 +3617,177 @@ public interface IPos_DatamodelPackage extends EPackage {
 	EAttribute getEventFilterCondition_FilterStructure();
 
 	/**
-	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionConditionCell <em>Position Condition Cell</em>}'.
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionConditionCells <em>Position Condition Cells</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Position Condition Cells</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionConditionCells()
+	 * @see #getEventFilterCondition()
+	 * @generated
+	 */
+	EAttribute getEventFilterCondition_PositionConditionCells();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getIdCondition <em>Id Condition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id Condition</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getIdCondition()
+	 * @see #getEventFilterCondition()
+	 * @generated
+	 */
+	EAttribute getEventFilterCondition_IdCondition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getCategoryCondition <em>Category Condition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Category Condition</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getCategoryCondition()
+	 * @see #getEventFilterCondition()
+	 * @generated
+	 */
+	EAttribute getEventFilterCondition_CategoryCondition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPropertyCondition <em>Property Condition</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Position Condition Cell</em>'.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPositionConditionCell()
+	 * @return the meta object for the attribute '<em>Property Condition</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition#getPropertyCondition()
 	 * @see #getEventFilterCondition()
 	 * @generated
 	 */
-	EAttribute getEventFilterCondition_PositionConditionCell();
+	EAttribute getEventFilterCondition_PropertyCondition();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor <em>Zone Descriptor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Zone Descriptor</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor
+	 * @generated
+	 */
+	EClass getZoneDescriptor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor#getZoneId <em>Zone Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Zone Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor#getZoneId()
+	 * @see #getZoneDescriptor()
+	 * @generated
+	 */
+	EAttribute getZoneDescriptor_ZoneId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor#getNotificationType <em>Notification Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Notification Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor#getNotificationType()
+	 * @see #getZoneDescriptor()
+	 * @generated
+	 */
+	EAttribute getZoneDescriptor_NotificationType();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse <em>Data Storage Query Response</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Storage Query Response</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse
+	 * @generated
+	 */
+	EClass getDataStorageQueryResponse();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse#getPositionEvents <em>Position Events</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Position Events</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse#getPositionEvents()
+	 * @see #getDataStorageQueryResponse()
+	 * @generated
+	 */
+	EReference getDataStorageQueryResponse_PositionEvents();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse#getTrackingTaskId <em>Tracking Task Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tracking Task Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse#getTrackingTaskId()
+	 * @see #getDataStorageQueryResponse()
+	 * @generated
+	 */
+	EAttribute getDataStorageQueryResponse_TrackingTaskId();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent <em>Message Received Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Message Received Event</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent
+	 * @generated
+	 */
+	EClass getMessageReceivedEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getProtocolName <em>Protocol Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Protocol Name</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getProtocolName()
+	 * @see #getMessageReceivedEvent()
+	 * @generated
+	 */
+	EAttribute getMessageReceivedEvent_ProtocolName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getSerializedMsg <em>Serialized Msg</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Serialized Msg</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getSerializedMsg()
+	 * @see #getMessageReceivedEvent()
+	 * @generated
+	 */
+	EAttribute getMessageReceivedEvent_SerializedMsg();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getAgentId <em>Agent Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Agent Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getAgentId()
+	 * @see #getMessageReceivedEvent()
+	 * @generated
+	 */
+	EAttribute getMessageReceivedEvent_AgentId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getExtractedAttributes <em>Extracted Attributes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Extracted Attributes</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getExtractedAttributes()
+	 * @see #getMessageReceivedEvent()
+	 * @generated
+	 */
+	EAttribute getMessageReceivedEvent_ExtractedAttributes();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getTimestamp <em>Timestamp</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Timestamp</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getTimestamp()
+	 * @see #getMessageReceivedEvent()
+	 * @generated
+	 */
+	EAttribute getMessageReceivedEvent_Timestamp();
 
 	/**
 	 * Returns the meta object for data type '{@link java.util.List <em>String List</em>}'.
@@ -3937,6 +3840,37 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	EDataType getFloatArray();
 
+	/**
+	 * Returns the meta object for data type '<em>Byte Array</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Byte Array</em>'.
+	 * @model instanceClass="java.lang.byte[]"
+	 * @generated
+	 */
+	EDataType getByteArray();
+
+	/**
+	 * Returns the meta object for data type '{@link java.util.LinkedList <em>List Of String Maps</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>List Of String Maps</em>'.
+	 * @see java.util.LinkedList
+	 * @model instanceClass="java.util.LinkedList&lt;java.util.HashMap&lt;java.lang.String, java.lang.String&gt;&gt;"
+	 * @generated
+	 */
+	EDataType getListOfStringMaps();
+
+	/**
+	 * Returns the meta object for data type '<em>Int Array</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Int Array</em>'.
+	 * @model instanceClass="int[]"
+	 * @generated
+	 */
+	EDataType getIntArray();
+
 	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
@@ -3970,14 +3904,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 		 */
 		EClass AGENT = eINSTANCE.getAgent();
 
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute AGENT__NAME = eINSTANCE.getAgent_Name();
-
 		/**
 		 * The meta object literal for the '<em><b>LObject</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
@@ -3987,20 +3913,12 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EReference AGENT__LOBJECT = eINSTANCE.getAgent_LObject();
 
 		/**
-		 * The meta object literal for the '<em><b>Net Int</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference AGENT__NET_INT = eINSTANCE.getAgent_NetInt();
-
-		/**
-		 * The meta object literal for the '<em><b>PSensors</b></em>' reference list feature.
+		 * The meta object literal for the '<em><b>Agent Type</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference AGENT__PSENSORS = eINSTANCE.getAgent_PSensors();
+		EAttribute AGENT__AGENT_TYPE = eINSTANCE.getAgent_AgentType();
 
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EntityImpl <em>Entity</em>}' class.
@@ -4030,22 +3948,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 		 */
 		EClass LOCALIZABLE_OBJECT = eINSTANCE.getLocalizableObject();
 
-		/**
-		 * The meta object literal for the '<em><b>PSensor</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LOCALIZABLE_OBJECT__PSENSOR = eINSTANCE.getLocalizableObject_PSensor();
-
-		/**
-		 * The meta object literal for the '<em><b>Current Placing</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LOCALIZABLE_OBJECT__CURRENT_PLACING = eINSTANCE.getLocalizableObject_CurrentPlacing();
-
 		/**
 		 * The meta object literal for the '<em><b>Last Pos Update</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
@@ -4055,22 +3957,12 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EAttribute LOCALIZABLE_OBJECT__LAST_POS_UPDATE = eINSTANCE.getLocalizableObject_LastPosUpdate();
 
 		/**
-		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute LOCALIZABLE_OBJECT__TYPE = eINSTANCE.getLocalizableObject_Type();
-
-		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionSensorImpl <em>Position Sensor</em>}' class.
+		 * The meta object literal for the '<em><b>Sensor Type</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionSensorImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPositionSensor()
 		 * @generated
 		 */
-		EClass POSITION_SENSOR = eINSTANCE.getPositionSensor();
+		EAttribute LOCALIZABLE_OBJECT__SENSOR_TYPE = eINSTANCE.getLocalizableObject_SensorType();
 
 		/**
 		 * The meta object literal for the '<em><b>Agent</b></em>' reference feature.
@@ -4078,23 +3970,15 @@ public interface IPos_DatamodelPackage extends EPackage {
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference POSITION_SENSOR__AGENT = eINSTANCE.getPositionSensor_Agent();
-
-		/**
-		 * The meta object literal for the '<em><b>LObject</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference POSITION_SENSOR__LOBJECT = eINSTANCE.getPositionSensor_LObject();
+		EReference LOCALIZABLE_OBJECT__AGENT = eINSTANCE.getLocalizableObject_Agent();
 
 		/**
-		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Current Placing</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute POSITION_SENSOR__TYPE = eINSTANCE.getPositionSensor_Type();
+		EReference LOCALIZABLE_OBJECT__CURRENT_PLACING = eINSTANCE.getLocalizableObject_CurrentPlacing();
 
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PlacingImpl <em>Placing</em>}' class.
@@ -4106,14 +3990,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 		 */
 		EClass PLACING = eINSTANCE.getPlacing();
 
-		/**
-		 * The meta object literal for the '<em><b>LObject</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PLACING__LOBJECT = eINSTANCE.getPlacing_LObject();
-
 		/**
 		 * The meta object literal for the '<em><b>Position</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
@@ -4123,84 +3999,56 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EReference PLACING__POSITION = eINSTANCE.getPlacing_Position();
 
 		/**
-		 * The meta object literal for the '<em><b>Orientation</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PLACING__ORIENTATION = eINSTANCE.getPlacing_Orientation();
-
-		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionImpl <em>Position</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPosition()
-		 * @generated
-		 */
-		EClass POSITION = eINSTANCE.getPosition();
-
-		/**
-		 * The meta object literal for the '<em><b>Accuracy</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference POSITION__ACCURACY = eINSTANCE.getPosition_Accuracy();
-
-		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.OrientationImpl <em>Orientation</em>}' class.
+		 * The meta object literal for the '<em><b>Orientation</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.OrientationImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getOrientation()
 		 * @generated
 		 */
-		EClass ORIENTATION = eINSTANCE.getOrientation();
+		EReference PLACING__ORIENTATION = eINSTANCE.getPlacing_Orientation();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AbsolutePositionImpl <em>Absolute Position</em>}' class.
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionImpl <em>Position</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.AbsolutePositionImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getAbsolutePosition()
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPosition()
 		 * @generated
 		 */
-		EClass ABSOLUTE_POSITION = eINSTANCE.getAbsolutePosition();
+		EClass POSITION = eINSTANCE.getPosition();
 
 		/**
-		 * The meta object literal for the '<em><b>Point</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Accuracy</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference ABSOLUTE_POSITION__POINT = eINSTANCE.getAbsolutePosition_Point();
+		EReference POSITION__ACCURACY = eINSTANCE.getPosition_Accuracy();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RelativePositionImpl <em>Relative Position</em>}' class.
+		 * The meta object literal for the '<em><b>Point</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.RelativePositionImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getRelativePosition()
 		 * @generated
 		 */
-		EClass RELATIVE_POSITION = eINSTANCE.getRelativePosition();
+		EReference POSITION__POINT = eINSTANCE.getPosition_Point();
 
 		/**
-		 * The meta object literal for the '<em><b>Reference</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Reference System</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference RELATIVE_POSITION__REFERENCE = eINSTANCE.getRelativePosition_Reference();
+		EReference POSITION__REFERENCE_SYSTEM = eINSTANCE.getPosition_ReferenceSystem();
 
 		/**
-		 * The meta object literal for the '<em><b>Point</b></em>' reference feature.
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.OrientationImpl <em>Orientation</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.OrientationImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getOrientation()
 		 * @generated
 		 */
-		EReference RELATIVE_POSITION__POINT = eINSTANCE.getRelativePosition_Point();
+		EClass ORIENTATION = eINSTANCE.getOrientation();
 
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WGS84PointImpl <em>WGS84 Point</em>}' class.
@@ -4358,6 +4206,22 @@ public interface IPos_DatamodelPackage extends EPackage {
 		 */
 		EReference ZONE__SPACE = eINSTANCE.getZone_Space();
 
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ZONE__NAME = eINSTANCE.getZone_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ZONE__ID = eINSTANCE.getZone_Id();
+
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneMapImpl <em>Zone Map</em>}' class.
 		 * <!-- begin-user-doc -->
@@ -4411,24 +4275,22 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EAttribute SPACE__Z = eINSTANCE.getSpace_Z();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MapTypeImpl <em>Map Type</em>}' class.
+		 * The meta object literal for the '<em><b>Centre Point</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.MapTypeImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMapType()
 		 * @generated
 		 */
-		EClass MAP_TYPE = eINSTANCE.getMapType();
+		EReference SPACE__CENTRE_POINT = eINSTANCE.getSpace_CentrePoint();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.NetworkInterfaceImpl <em>Network Interface</em>}' class.
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MapTypeImpl <em>Map Type</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.NetworkInterfaceImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getNetworkInterface()
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.MapTypeImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMapType()
 		 * @generated
 		 */
-		EClass NETWORK_INTERFACE = eINSTANCE.getNetworkInterface();
+		EClass MAP_TYPE = eINSTANCE.getMapType();
 
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.QuaternionImpl <em>Quaternion</em>}' class.
@@ -4501,22 +4363,22 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EClass POINT = eINSTANCE.getPoint();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataImpl <em>Rawdata</em>}' class.
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl <em>Rawdata Event</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getRawdata()
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getRawdataEvent()
 		 * @generated
 		 */
-		EClass RAWDATA = eINSTANCE.getRawdata();
+		EClass RAWDATA_EVENT = eINSTANCE.getRawdataEvent();
 
 		/**
-		 * The meta object literal for the '<em><b>Sensor Id</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Time Stamp</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute RAWDATA__SENSOR_ID = eINSTANCE.getRawdata_SensorId();
+		EAttribute RAWDATA_EVENT__TIME_STAMP = eINSTANCE.getRawdataEvent_TimeStamp();
 
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ProximityImpl <em>Proximity</em>}' class.
@@ -4615,14 +4477,12 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EReference IMU__ACCELERATION = eINSTANCE.getIMU_Acceleration();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AngularRateImpl <em>Angular Rate</em>}' class.
+		 * The meta object literal for the '<em><b>Sensor Id</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.AngularRateImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getAngularRate()
 		 * @generated
 		 */
-		EClass ANGULAR_RATE = eINSTANCE.getAngularRate();
+		EAttribute IMU__SENSOR_ID = eINSTANCE.getIMU_SensorId();
 
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AccelerationImpl <em>Acceleration</em>}' class.
@@ -4635,114 +4495,104 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EClass ACCELERATION = eINSTANCE.getAcceleration();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.BeaconImpl <em>Beacon</em>}' class.
+		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.BeaconImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getBeacon()
 		 * @generated
 		 */
-		EClass BEACON = eINSTANCE.getBeacon();
+		EAttribute ACCELERATION__X = eINSTANCE.getAcceleration_X();
 
 		/**
-		 * The meta object literal for the '<em><b>Distances</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute BEACON__DISTANCES = eINSTANCE.getBeacon_Distances();
+		EAttribute ACCELERATION__Y = eINSTANCE.getAcceleration_Y();
 
 		/**
-		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Z</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute BEACON__TYPE = eINSTANCE.getBeacon_Type();
+		EAttribute ACCELERATION__Z = eINSTANCE.getAcceleration_Z();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl <em>Position Event</em>}' class.
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.BeaconImpl <em>Beacon</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPositionEvent()
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.BeaconImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getBeacon()
 		 * @generated
 		 */
-		EClass POSITION_EVENT = eINSTANCE.getPositionEvent();
+		EClass BEACON = eINSTANCE.getBeacon();
 
 		/**
-		 * The meta object literal for the '<em><b>Placing</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Distances</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference POSITION_EVENT__PLACING = eINSTANCE.getPositionEvent_Placing();
+		EAttribute BEACON__DISTANCES = eINSTANCE.getBeacon_Distances();
 
 		/**
-		 * The meta object literal for the '<em><b>Time Stamp</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute POSITION_EVENT__TIME_STAMP = eINSTANCE.getPositionEvent_TimeStamp();
+		EAttribute BEACON__TYPE = eINSTANCE.getBeacon_Type();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl <em>Rawdata Event</em>}' class.
+		 * The meta object literal for the '<em><b>Sensor Id</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getRawdataEvent()
 		 * @generated
 		 */
-		EClass RAWDATA_EVENT = eINSTANCE.getRawdataEvent();
+		EAttribute BEACON__SENSOR_ID = eINSTANCE.getBeacon_SensorId();
 
 		/**
-		 * The meta object literal for the '<em><b>Rawdata</b></em>' reference list feature.
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl <em>Position Event</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPositionEvent()
 		 * @generated
 		 */
-		EReference RAWDATA_EVENT__RAWDATA = eINSTANCE.getRawdataEvent_Rawdata();
+		EClass POSITION_EVENT = eINSTANCE.getPositionEvent();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.TrackingRequestImpl <em>Tracking Request</em>}' class.
+		 * The meta object literal for the '<em><b>Placing</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.TrackingRequestImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getTrackingRequest()
 		 * @generated
 		 */
-		EClass TRACKING_REQUEST = eINSTANCE.getTrackingRequest();
+		EReference POSITION_EVENT__PLACING = eINSTANCE.getPositionEvent_Placing();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MonitoringRequestImpl <em>Monitoring Request</em>}' class.
+		 * The meta object literal for the '<em><b>Time Stamp</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.MonitoringRequestImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMonitoringRequest()
 		 * @generated
 		 */
-		EClass MONITORING_REQUEST = eINSTANCE.getMonitoringRequest();
+		EAttribute POSITION_EVENT__TIME_STAMP = eINSTANCE.getPositionEvent_TimeStamp();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelUpdateRequestImpl <em>World Model Update Request</em>}' class.
+		 * The meta object literal for the '<em><b>LObject Id</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelUpdateRequestImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getWorldModelUpdateRequest()
 		 * @generated
 		 */
-		EClass WORLD_MODEL_UPDATE_REQUEST = eINSTANCE.getWorldModelUpdateRequest();
+		EAttribute POSITION_EVENT__LOBJECT_ID = eINSTANCE.getPositionEvent_LObjectId();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageRequestImpl <em>Data Storage Request</em>}' class.
+		 * The meta object literal for the '<em><b>Zonedescriptors</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageRequestImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getDataStorageRequest()
 		 * @generated
 		 */
-		EClass DATA_STORAGE_REQUEST = eINSTANCE.getDataStorageRequest();
+		EReference POSITION_EVENT__ZONEDESCRIPTORS = eINSTANCE.getPositionEvent_Zonedescriptors();
 
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConfigurationImpl <em>Event Filter Configuration</em>}' class.
@@ -4789,36 +4639,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EReference EVENT_FILTER_CONFIGURATION__EVENTFILTERCONDITION = eINSTANCE
 				.getEventFilterConfiguration_Eventfiltercondition();
 
-		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelQueryRequestImpl <em>World Model Query Request</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelQueryRequestImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getWorldModelQueryRequest()
-		 * @generated
-		 */
-		EClass WORLD_MODEL_QUERY_REQUEST = eINSTANCE.getWorldModelQueryRequest();
-
-		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryRequestImpl <em>Data Storage Query Request</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryRequestImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getDataStorageQueryRequest()
-		 * @generated
-		 */
-		EClass DATA_STORAGE_QUERY_REQUEST = eINSTANCE.getDataStorageQueryRequest();
-
-		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AgentRegistrationRequestImpl <em>Agent Registration Request</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.AgentRegistrationRequestImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getAgentRegistrationRequest()
-		 * @generated
-		 */
-		EClass AGENT_REGISTRATION_REQUEST = eINSTANCE.getAgentRegistrationRequest();
-
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MonitoringTaskImpl <em>Monitoring Task</em>}' class.
 		 * <!-- begin-user-doc -->
@@ -4874,12 +4694,28 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EReference WORLD_MODEL__AGENT = eINSTANCE.getWorldModel_Agent();
 
 		/**
-		 * The meta object literal for the '<em><b>Zonemap</b></em>' reference list feature.
+		 * The meta object literal for the '<em><b>Zone Map</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference WORLD_MODEL__ZONE_MAP = eINSTANCE.getWorldModel_ZoneMap();
+
+		/**
+		 * The meta object literal for the '<em><b>Pois</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference WORLD_MODEL__POIS = eINSTANCE.getWorldModel_Pois();
+
+		/**
+		 * The meta object literal for the '<em><b>Reference System</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference WORLD_MODEL__ZONEMAP = eINSTANCE.getWorldModel_Zonemap();
+		EReference WORLD_MODEL__REFERENCE_SYSTEM = eINSTANCE.getWorldModel_ReferenceSystem();
 
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.BarcodeImpl <em>Barcode</em>}' class.
@@ -4937,16 +4773,6 @@ public interface IPos_DatamodelPackage extends EPackage {
 		 */
 		EClass UWB = eINSTANCE.getUWB();
 
-		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.SensorConfigurationRequestImpl <em>Sensor Configuration Request</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.SensorConfigurationRequestImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getSensorConfigurationRequest()
-		 * @generated
-		 */
-		EClass SENSOR_CONFIGURATION_REQUEST = eINSTANCE.getSensorConfigurationRequest();
-
 		/**
 		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.OtherBeaconImpl <em>Other Beacon</em>}' class.
 		 * <!-- begin-user-doc -->
@@ -4966,64 +4792,64 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EAttribute OTHER_BEACON__DATA = eINSTANCE.getOtherBeacon_Data();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ReferencePositionImpl <em>Reference Position</em>}' class.
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.POIImpl <em>POI</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.ReferencePositionImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getReferencePosition()
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.POIImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getPOI()
 		 * @generated
 		 */
-		EClass REFERENCE_POSITION = eINSTANCE.getReferencePosition();
+		EClass POI = eINSTANCE.getPOI();
 
 		/**
-		 * The meta object literal for the '<em><b>Position</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Placing</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference REFERENCE_POSITION__POSITION = eINSTANCE.getReferencePosition_Position();
+		EReference POI__PLACING = eINSTANCE.getPOI_Placing();
 
 		/**
-		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute REFERENCE_POSITION__ID = eINSTANCE.getReferencePosition_Id();
+		EAttribute POI__DESCRIPTION = eINSTANCE.getPOI_Description();
 
 		/**
-		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl <em>Event Filter Condition</em>}' class.
+		 * The meta object literal for the '<em><b>Data</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl
-		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getEventFilterCondition()
 		 * @generated
 		 */
-		EClass EVENT_FILTER_CONDITION = eINSTANCE.getEventFilterCondition();
+		EAttribute POI__DATA = eINSTANCE.getPOI_Data();
 
 		/**
-		 * The meta object literal for the '<em><b>Time Condition</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute EVENT_FILTER_CONDITION__TIME_CONDITION = eINSTANCE.getEventFilterCondition_TimeCondition();
+		EAttribute POI__ID = eINSTANCE.getPOI_Id();
 
 		/**
-		 * The meta object literal for the '<em><b>Category Condition</b></em>' attribute feature.
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl <em>Event Filter Condition</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getEventFilterCondition()
 		 * @generated
 		 */
-		EAttribute EVENT_FILTER_CONDITION__CATEGORY_CONDITION = eINSTANCE.getEventFilterCondition_CategoryCondition();
+		EClass EVENT_FILTER_CONDITION = eINSTANCE.getEventFilterCondition();
 
 		/**
-		 * The meta object literal for the '<em><b>Id Condition</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Time Condition</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute EVENT_FILTER_CONDITION__ID_CONDITION = eINSTANCE.getEventFilterCondition_IdCondition();
+		EAttribute EVENT_FILTER_CONDITION__TIME_CONDITION = eINSTANCE.getEventFilterCondition_TimeCondition();
 
 		/**
 		 * The meta object literal for the '<em><b>Accuracy Condition</b></em>' attribute feature.
@@ -5074,13 +4900,142 @@ public interface IPos_DatamodelPackage extends EPackage {
 		EAttribute EVENT_FILTER_CONDITION__FILTER_STRUCTURE = eINSTANCE.getEventFilterCondition_FilterStructure();
 
 		/**
-		 * The meta object literal for the '<em><b>Position Condition Cell</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Position Condition Cells</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EVENT_FILTER_CONDITION__POSITION_CONDITION_CELLS = eINSTANCE
+				.getEventFilterCondition_PositionConditionCells();
+
+		/**
+		 * The meta object literal for the '<em><b>Id Condition</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EVENT_FILTER_CONDITION__ID_CONDITION = eINSTANCE.getEventFilterCondition_IdCondition();
+
+		/**
+		 * The meta object literal for the '<em><b>Category Condition</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EVENT_FILTER_CONDITION__CATEGORY_CONDITION = eINSTANCE.getEventFilterCondition_CategoryCondition();
+
+		/**
+		 * The meta object literal for the '<em><b>Property Condition</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EVENT_FILTER_CONDITION__PROPERTY_CONDITION = eINSTANCE.getEventFilterCondition_PropertyCondition();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneDescriptorImpl <em>Zone Descriptor</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneDescriptorImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getZoneDescriptor()
+		 * @generated
+		 */
+		EClass ZONE_DESCRIPTOR = eINSTANCE.getZoneDescriptor();
+
+		/**
+		 * The meta object literal for the '<em><b>Zone Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ZONE_DESCRIPTOR__ZONE_ID = eINSTANCE.getZoneDescriptor_ZoneId();
+
+		/**
+		 * The meta object literal for the '<em><b>Notification Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ZONE_DESCRIPTOR__NOTIFICATION_TYPE = eINSTANCE.getZoneDescriptor_NotificationType();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryResponseImpl <em>Data Storage Query Response</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryResponseImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getDataStorageQueryResponse()
+		 * @generated
+		 */
+		EClass DATA_STORAGE_QUERY_RESPONSE = eINSTANCE.getDataStorageQueryResponse();
+
+		/**
+		 * The meta object literal for the '<em><b>Position Events</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_STORAGE_QUERY_RESPONSE__POSITION_EVENTS = eINSTANCE
+				.getDataStorageQueryResponse_PositionEvents();
+
+		/**
+		 * The meta object literal for the '<em><b>Tracking Task Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID = eINSTANCE
+				.getDataStorageQueryResponse_TrackingTaskId();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl <em>Message Received Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getMessageReceivedEvent()
+		 * @generated
+		 */
+		EClass MESSAGE_RECEIVED_EVENT = eINSTANCE.getMessageReceivedEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>Protocol Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME = eINSTANCE.getMessageReceivedEvent_ProtocolName();
+
+		/**
+		 * The meta object literal for the '<em><b>Serialized Msg</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG = eINSTANCE.getMessageReceivedEvent_SerializedMsg();
+
+		/**
+		 * The meta object literal for the '<em><b>Agent Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MESSAGE_RECEIVED_EVENT__AGENT_ID = eINSTANCE.getMessageReceivedEvent_AgentId();
+
+		/**
+		 * The meta object literal for the '<em><b>Extracted Attributes</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute EVENT_FILTER_CONDITION__POSITION_CONDITION_CELL = eINSTANCE
-				.getEventFilterCondition_PositionConditionCell();
+		EAttribute MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES = eINSTANCE
+				.getMessageReceivedEvent_ExtractedAttributes();
+
+		/**
+		 * The meta object literal for the '<em><b>Timestamp</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MESSAGE_RECEIVED_EVENT__TIMESTAMP = eINSTANCE.getMessageReceivedEvent_Timestamp();
 
 		/**
 		 * The meta object literal for the '<em>String List</em>' data type.
@@ -5128,6 +5083,34 @@ public interface IPos_DatamodelPackage extends EPackage {
 		 */
 		EDataType FLOAT_ARRAY = eINSTANCE.getFloatArray();
 
+		/**
+		 * The meta object literal for the '<em>Byte Array</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getByteArray()
+		 * @generated
+		 */
+		EDataType BYTE_ARRAY = eINSTANCE.getByteArray();
+
+		/**
+		 * The meta object literal for the '<em>List Of String Maps</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see java.util.LinkedList
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getListOfStringMaps()
+		 * @generated
+		 */
+		EDataType LIST_OF_STRING_MAPS = eINSTANCE.getListOfStringMaps();
+
+		/**
+		 * The meta object literal for the '<em>Int Array</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getIntArray()
+		 * @generated
+		 */
+		EDataType INT_ARRAY = eINSTANCE.getIntArray();
+
 	}
 
 } //IPos_DatamodelPackage
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/LocalizableObject.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/LocalizableObject.java
index 3379caafea767878d7abb0e7c5a94bf035238156..d72ef65365d8a2cb336d740c3c87fd0701936a8f 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/LocalizableObject.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/LocalizableObject.java
@@ -11,10 +11,10 @@ package ipos.project.DataModellntegration.iPos_Datamodel;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getPSensor <em>PSensor</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing <em>Current Placing</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getLastPosUpdate <em>Last Pos Update</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getSensorType <em>Sensor Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getAgent <em>Agent</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing <em>Current Placing</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getLocalizableObject()
@@ -23,93 +23,91 @@ package ipos.project.DataModellntegration.iPos_Datamodel;
  */
 public interface LocalizableObject extends Entity {
 	/**
-	 * Returns the value of the '<em><b>PSensor</b></em>' reference.
+	 * Returns the value of the '<em><b>Last Pos Update</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>PSensor</em>' reference.
-	 * @see #setPSensor(PositionSensor)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getLocalizableObject_PSensor()
-	 * @model required="true"
+	 * @return the value of the '<em>Last Pos Update</em>' attribute.
+	 * @see #setLastPosUpdate(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getLocalizableObject_LastPosUpdate()
+	 * @model
 	 * @generated
 	 */
-	PositionSensor getPSensor();
+	String getLastPosUpdate();
 
 	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getPSensor <em>PSensor</em>}' reference.
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getLastPosUpdate <em>Last Pos Update</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>PSensor</em>' reference.
-	 * @see #getPSensor()
+	 * @param value the new value of the '<em>Last Pos Update</em>' attribute.
+	 * @see #getLastPosUpdate()
 	 * @generated
 	 */
-	void setPSensor(PositionSensor value);
+	void setLastPosUpdate(String value);
 
 	/**
-	 * Returns the value of the '<em><b>Current Placing</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link ipos.project.DataModellntegration.iPos_Datamodel.Placing#getLObject <em>LObject</em>}'.
+	 * Returns the value of the '<em><b>Sensor Type</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Current Placing</em>' reference.
-	 * @see #setCurrentPlacing(Placing)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getLocalizableObject_CurrentPlacing()
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Placing#getLObject
-	 * @model opposite="lObject"
+	 * @return the value of the '<em>Sensor Type</em>' attribute.
+	 * @see #setSensorType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getLocalizableObject_SensorType()
+	 * @model
 	 * @generated
 	 */
-	Placing getCurrentPlacing();
+	String getSensorType();
 
 	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing <em>Current Placing</em>}' reference.
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getSensorType <em>Sensor Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Current Placing</em>' reference.
-	 * @see #getCurrentPlacing()
+	 * @param value the new value of the '<em>Sensor Type</em>' attribute.
+	 * @see #getSensorType()
 	 * @generated
 	 */
-	void setCurrentPlacing(Placing value);
+	void setSensorType(String value);
 
 	/**
-	 * Returns the value of the '<em><b>Last Pos Update</b></em>' attribute.
+	 * Returns the value of the '<em><b>Agent</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Last Pos Update</em>' attribute.
-	 * @see #setLastPosUpdate(String)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getLocalizableObject_LastPosUpdate()
+	 * @return the value of the '<em>Agent</em>' reference.
+	 * @see #setAgent(Agent)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getLocalizableObject_Agent()
 	 * @model
 	 * @generated
 	 */
-	String getLastPosUpdate();
+	Agent getAgent();
 
 	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getLastPosUpdate <em>Last Pos Update</em>}' attribute.
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getAgent <em>Agent</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Last Pos Update</em>' attribute.
-	 * @see #getLastPosUpdate()
+	 * @param value the new value of the '<em>Agent</em>' reference.
+	 * @see #getAgent()
 	 * @generated
 	 */
-	void setLastPosUpdate(String value);
+	void setAgent(Agent value);
 
 	/**
-	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * Returns the value of the '<em><b>Current Placing</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type</em>' attribute.
-	 * @see #setType(String)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getLocalizableObject_Type()
+	 * @return the value of the '<em>Current Placing</em>' reference.
+	 * @see #setCurrentPlacing(Placing)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getLocalizableObject_CurrentPlacing()
 	 * @model
 	 * @generated
 	 */
-	String getType();
+	Placing getCurrentPlacing();
 
 	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getType <em>Type</em>}' attribute.
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing <em>Current Placing</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type</em>' attribute.
-	 * @see #getType()
+	 * @param value the new value of the '<em>Current Placing</em>' reference.
+	 * @see #getCurrentPlacing()
 	 * @generated
 	 */
-	void setType(String value);
+	void setCurrentPlacing(Placing value);
 
 } // LocalizableObject
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MessageReceivedEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MessageReceivedEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b4bbd2bad2e110e3781db53a26d30f12f978565
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MessageReceivedEvent.java
@@ -0,0 +1,141 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Message Received Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getProtocolName <em>Protocol Name</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getSerializedMsg <em>Serialized Msg</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getAgentId <em>Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getExtractedAttributes <em>Extracted Attributes</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getTimestamp <em>Timestamp</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent()
+ * @model
+ * @generated
+ */
+public interface MessageReceivedEvent extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Protocol Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Protocol Name</em>' attribute.
+	 * @see #setProtocolName(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_ProtocolName()
+	 * @model
+	 * @generated
+	 */
+	String getProtocolName();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getProtocolName <em>Protocol Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Protocol Name</em>' attribute.
+	 * @see #getProtocolName()
+	 * @generated
+	 */
+	void setProtocolName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Serialized Msg</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Serialized Msg</em>' attribute.
+	 * @see #setSerializedMsg(byte[])
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_SerializedMsg()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.ByteArray"
+	 * @generated
+	 */
+	byte[] getSerializedMsg();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getSerializedMsg <em>Serialized Msg</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Serialized Msg</em>' attribute.
+	 * @see #getSerializedMsg()
+	 * @generated
+	 */
+	void setSerializedMsg(byte[] value);
+
+	/**
+	 * Returns the value of the '<em><b>Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Agent Id</em>' attribute.
+	 * @see #setAgentId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_AgentId()
+	 * @model
+	 * @generated
+	 */
+	String getAgentId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getAgentId <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Agent Id</em>' attribute.
+	 * @see #getAgentId()
+	 * @generated
+	 */
+	void setAgentId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Extracted Attributes</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Extracted Attributes</em>' attribute.
+	 * @see #setExtractedAttributes(LinkedList)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_ExtractedAttributes()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.ListOfStringMaps"
+	 * @generated
+	 */
+	LinkedList<HashMap<String, String>> getExtractedAttributes();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getExtractedAttributes <em>Extracted Attributes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Extracted Attributes</em>' attribute.
+	 * @see #getExtractedAttributes()
+	 * @generated
+	 */
+	void setExtractedAttributes(LinkedList<HashMap<String, String>> value);
+
+	/**
+	 * Returns the value of the '<em><b>Timestamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Timestamp</em>' attribute.
+	 * @see #setTimestamp(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMessageReceivedEvent_Timestamp()
+	 * @model
+	 * @generated
+	 */
+	String getTimestamp();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent#getTimestamp <em>Timestamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Timestamp</em>' attribute.
+	 * @see #getTimestamp()
+	 * @generated
+	 */
+	void setTimestamp(String value);
+
+} // MessageReceivedEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MonitoringRequest.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MonitoringRequest.java
deleted file mode 100644
index 32af5a4ab545774d12d79e8000e6ce1958a587f4..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/MonitoringRequest.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Monitoring Request</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getMonitoringRequest()
- * @model
- * @generated
- */
-public interface MonitoringRequest extends EObject {
-} // MonitoringRequest
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/NFC.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/NFC.java
index d7d409b7779cdd93c10e5997bac155ea60bb81fa..2460d854e49a1dae325bbae3087a64577ae8c13a 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/NFC.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/NFC.java
@@ -4,8 +4,6 @@ package ipos.project.DataModellntegration.iPos_Datamodel;
 
 import java.util.Map;
 
-import org.eclipse.emf.ecore.EObject;
-
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>NFC</b></em>'.
@@ -33,7 +31,7 @@ public interface NFC extends Proximity {
 	 * @model transient="true"
 	 * @generated
 	 */
-	Map<String, EObject> getTagData();
+	Map<String, Object> getTagData();
 
 	/**
 	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.NFC#getTagData <em>Tag Data</em>}' attribute.
@@ -43,6 +41,6 @@ public interface NFC extends Proximity {
 	 * @see #getTagData()
 	 * @generated
 	 */
-	void setTagData(Map<String, EObject> value);
+	void setTagData(Map<String, Object> value);
 
 } // NFC
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/NetworkInterface.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/NetworkInterface.java
deleted file mode 100644
index e029b2898a09b3d6331bf0da55ba31a4c75e529c..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/NetworkInterface.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Network Interface</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getNetworkInterface()
- * @model
- * @generated
- */
-public interface NetworkInterface extends EObject {
-} // NetworkInterface
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/InventoryItem.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/InventoryItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..f01a4707311cad3874ae8e51c1260cc72eeefabd
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/InventoryItem.java
@@ -0,0 +1,92 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Inventory Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getInventoryItemId <em>Inventory Item Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getContainerId <em>Container Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getProductId <em>Product Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getInventoryItem()
+ * @model
+ * @generated
+ */
+public interface InventoryItem extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Inventory Item Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Inventory Item Id</em>' attribute.
+	 * @see #setInventoryItemId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getInventoryItem_InventoryItemId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getInventoryItemId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getInventoryItemId <em>Inventory Item Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Inventory Item Id</em>' attribute.
+	 * @see #getInventoryItemId()
+	 * @generated
+	 */
+	void setInventoryItemId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Container Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Container Id</em>' attribute.
+	 * @see #setContainerId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getInventoryItem_ContainerId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getContainerId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getContainerId <em>Container Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Container Id</em>' attribute.
+	 * @see #getContainerId()
+	 * @generated
+	 */
+	void setContainerId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Product Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Product Id</em>' attribute.
+	 * @see #setProductId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getInventoryItem_ProductId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getProductId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getProductId <em>Product Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Product Id</em>' attribute.
+	 * @see #getProductId()
+	 * @generated
+	 */
+	void setProductId(String value);
+
+} // InventoryItem
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/OFBizFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/OFBizFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..81e6a61b1b5dcfb0a8629a7969633a737212ddae
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/OFBizFactory.java
@@ -0,0 +1,78 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage
+ * @generated
+ */
+public interface OFBizFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	OFBizFactory eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Picklist</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Picklist</em>'.
+	 * @generated
+	 */
+	Picklist createPicklist();
+
+	/**
+	 * Returns a new object of class '<em>Picklist Bin</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Picklist Bin</em>'.
+	 * @generated
+	 */
+	PicklistBin createPicklistBin();
+
+	/**
+	 * Returns a new object of class '<em>Picklist Item</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Picklist Item</em>'.
+	 * @generated
+	 */
+	PicklistItem createPicklistItem();
+
+	/**
+	 * Returns a new object of class '<em>Inventory Item</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Inventory Item</em>'.
+	 * @generated
+	 */
+	InventoryItem createInventoryItem();
+
+	/**
+	 * Returns a new object of class '<em>Picklist Role</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Picklist Role</em>'.
+	 * @generated
+	 */
+	PicklistRole createPicklistRole();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	OFBizPackage getOFBizPackage();
+
+} //OFBizFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/OFBizPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/OFBizPackage.java
new file mode 100644
index 0000000000000000000000000000000000000000..31c3d4c40b2de02bed03c7c8ea09794e1fa4269d
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/OFBizPackage.java
@@ -0,0 +1,688 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface OFBizPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "OFBiz";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "ofbiz";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "ofbiz";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	OFBizPackage eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistImpl <em>Picklist</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getPicklist()
+	 * @generated
+	 */
+	int PICKLIST = 0;
+
+	/**
+	 * The feature id for the '<em><b>Picklist Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST__PICKLIST_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Picklist Roles</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST__PICKLIST_ROLES = 1;
+
+	/**
+	 * The feature id for the '<em><b>Picklist Bins</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST__PICKLIST_BINS = 2;
+
+	/**
+	 * The number of structural features of the '<em>Picklist</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Picklist</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistBinImpl <em>Picklist Bin</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistBinImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getPicklistBin()
+	 * @generated
+	 */
+	int PICKLIST_BIN = 1;
+
+	/**
+	 * The feature id for the '<em><b>Picklist Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_BIN__PICKLIST_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Bin Location Number</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_BIN__BIN_LOCATION_NUMBER = 1;
+
+	/**
+	 * The feature id for the '<em><b>Picklist Items</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_BIN__PICKLIST_ITEMS = 2;
+
+	/**
+	 * The number of structural features of the '<em>Picklist Bin</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_BIN_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Picklist Bin</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_BIN_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistItemImpl <em>Picklist Item</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistItemImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getPicklistItem()
+	 * @generated
+	 */
+	int PICKLIST_ITEM = 2;
+
+	/**
+	 * The feature id for the '<em><b>Inventory Item</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_ITEM__INVENTORY_ITEM = 0;
+
+	/**
+	 * The number of structural features of the '<em>Picklist Item</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_ITEM_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Picklist Item</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_ITEM_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.InventoryItemImpl <em>Inventory Item</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.InventoryItemImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getInventoryItem()
+	 * @generated
+	 */
+	int INVENTORY_ITEM = 3;
+
+	/**
+	 * The feature id for the '<em><b>Inventory Item Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INVENTORY_ITEM__INVENTORY_ITEM_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Container Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INVENTORY_ITEM__CONTAINER_ID = 1;
+
+	/**
+	 * The feature id for the '<em><b>Product Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INVENTORY_ITEM__PRODUCT_ID = 2;
+
+	/**
+	 * The number of structural features of the '<em>Inventory Item</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INVENTORY_ITEM_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Inventory Item</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INVENTORY_ITEM_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistRoleImpl <em>Picklist Role</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistRoleImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getPicklistRole()
+	 * @generated
+	 */
+	int PICKLIST_ROLE = 4;
+
+	/**
+	 * The feature id for the '<em><b>Picklist Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_ROLE__PICKLIST_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Party Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_ROLE__PARTY_ID = 1;
+
+	/**
+	 * The feature id for the '<em><b>Role Type Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_ROLE__ROLE_TYPE_ID = 2;
+
+	/**
+	 * The number of structural features of the '<em>Picklist Role</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_ROLE_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Picklist Role</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PICKLIST_ROLE_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist <em>Picklist</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Picklist</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist
+	 * @generated
+	 */
+	EClass getPicklist();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistId <em>Picklist Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Picklist Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistId()
+	 * @see #getPicklist()
+	 * @generated
+	 */
+	EAttribute getPicklist_PicklistId();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistRoles <em>Picklist Roles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Picklist Roles</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistRoles()
+	 * @see #getPicklist()
+	 * @generated
+	 */
+	EReference getPicklist_PicklistRoles();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistBins <em>Picklist Bins</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Picklist Bins</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistBins()
+	 * @see #getPicklist()
+	 * @generated
+	 */
+	EReference getPicklist_PicklistBins();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin <em>Picklist Bin</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Picklist Bin</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin
+	 * @generated
+	 */
+	EClass getPicklistBin();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getPicklistId <em>Picklist Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Picklist Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getPicklistId()
+	 * @see #getPicklistBin()
+	 * @generated
+	 */
+	EAttribute getPicklistBin_PicklistId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getBinLocationNumber <em>Bin Location Number</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bin Location Number</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getBinLocationNumber()
+	 * @see #getPicklistBin()
+	 * @generated
+	 */
+	EAttribute getPicklistBin_BinLocationNumber();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getPicklistItems <em>Picklist Items</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Picklist Items</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getPicklistItems()
+	 * @see #getPicklistBin()
+	 * @generated
+	 */
+	EReference getPicklistBin_PicklistItems();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem <em>Picklist Item</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Picklist Item</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem
+	 * @generated
+	 */
+	EClass getPicklistItem();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem#getInventoryItem <em>Inventory Item</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Inventory Item</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem#getInventoryItem()
+	 * @see #getPicklistItem()
+	 * @generated
+	 */
+	EReference getPicklistItem_InventoryItem();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem <em>Inventory Item</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Inventory Item</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem
+	 * @generated
+	 */
+	EClass getInventoryItem();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getInventoryItemId <em>Inventory Item Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Inventory Item Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getInventoryItemId()
+	 * @see #getInventoryItem()
+	 * @generated
+	 */
+	EAttribute getInventoryItem_InventoryItemId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getContainerId <em>Container Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Container Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getContainerId()
+	 * @see #getInventoryItem()
+	 * @generated
+	 */
+	EAttribute getInventoryItem_ContainerId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getProductId <em>Product Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Product Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem#getProductId()
+	 * @see #getInventoryItem()
+	 * @generated
+	 */
+	EAttribute getInventoryItem_ProductId();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole <em>Picklist Role</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Picklist Role</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole
+	 * @generated
+	 */
+	EClass getPicklistRole();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getPicklistId <em>Picklist Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Picklist Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getPicklistId()
+	 * @see #getPicklistRole()
+	 * @generated
+	 */
+	EAttribute getPicklistRole_PicklistId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getPartyId <em>Party Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Party Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getPartyId()
+	 * @see #getPicklistRole()
+	 * @generated
+	 */
+	EAttribute getPicklistRole_PartyId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getRoleTypeId <em>Role Type Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Role Type Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getRoleTypeId()
+	 * @see #getPicklistRole()
+	 * @generated
+	 */
+	EAttribute getPicklistRole_RoleTypeId();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	OFBizFactory getOFBizFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistImpl <em>Picklist</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getPicklist()
+		 * @generated
+		 */
+		EClass PICKLIST = eINSTANCE.getPicklist();
+
+		/**
+		 * The meta object literal for the '<em><b>Picklist Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PICKLIST__PICKLIST_ID = eINSTANCE.getPicklist_PicklistId();
+
+		/**
+		 * The meta object literal for the '<em><b>Picklist Roles</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PICKLIST__PICKLIST_ROLES = eINSTANCE.getPicklist_PicklistRoles();
+
+		/**
+		 * The meta object literal for the '<em><b>Picklist Bins</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PICKLIST__PICKLIST_BINS = eINSTANCE.getPicklist_PicklistBins();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistBinImpl <em>Picklist Bin</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistBinImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getPicklistBin()
+		 * @generated
+		 */
+		EClass PICKLIST_BIN = eINSTANCE.getPicklistBin();
+
+		/**
+		 * The meta object literal for the '<em><b>Picklist Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PICKLIST_BIN__PICKLIST_ID = eINSTANCE.getPicklistBin_PicklistId();
+
+		/**
+		 * The meta object literal for the '<em><b>Bin Location Number</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PICKLIST_BIN__BIN_LOCATION_NUMBER = eINSTANCE.getPicklistBin_BinLocationNumber();
+
+		/**
+		 * The meta object literal for the '<em><b>Picklist Items</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PICKLIST_BIN__PICKLIST_ITEMS = eINSTANCE.getPicklistBin_PicklistItems();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistItemImpl <em>Picklist Item</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistItemImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getPicklistItem()
+		 * @generated
+		 */
+		EClass PICKLIST_ITEM = eINSTANCE.getPicklistItem();
+
+		/**
+		 * The meta object literal for the '<em><b>Inventory Item</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PICKLIST_ITEM__INVENTORY_ITEM = eINSTANCE.getPicklistItem_InventoryItem();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.InventoryItemImpl <em>Inventory Item</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.InventoryItemImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getInventoryItem()
+		 * @generated
+		 */
+		EClass INVENTORY_ITEM = eINSTANCE.getInventoryItem();
+
+		/**
+		 * The meta object literal for the '<em><b>Inventory Item Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INVENTORY_ITEM__INVENTORY_ITEM_ID = eINSTANCE.getInventoryItem_InventoryItemId();
+
+		/**
+		 * The meta object literal for the '<em><b>Container Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INVENTORY_ITEM__CONTAINER_ID = eINSTANCE.getInventoryItem_ContainerId();
+
+		/**
+		 * The meta object literal for the '<em><b>Product Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INVENTORY_ITEM__PRODUCT_ID = eINSTANCE.getInventoryItem_ProductId();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistRoleImpl <em>Picklist Role</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistRoleImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl#getPicklistRole()
+		 * @generated
+		 */
+		EClass PICKLIST_ROLE = eINSTANCE.getPicklistRole();
+
+		/**
+		 * The meta object literal for the '<em><b>Picklist Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PICKLIST_ROLE__PICKLIST_ID = eINSTANCE.getPicklistRole_PicklistId();
+
+		/**
+		 * The meta object literal for the '<em><b>Party Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PICKLIST_ROLE__PARTY_ID = eINSTANCE.getPicklistRole_PartyId();
+
+		/**
+		 * The meta object literal for the '<em><b>Role Type Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PICKLIST_ROLE__ROLE_TYPE_ID = eINSTANCE.getPicklistRole_RoleTypeId();
+
+	}
+
+} //OFBizPackage
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/Picklist.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/Picklist.java
new file mode 100644
index 0000000000000000000000000000000000000000..7abef45d980eb8ef10f28d15c9f1a1cfe3334116
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/Picklist.java
@@ -0,0 +1,74 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Picklist</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistId <em>Picklist Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistRoles <em>Picklist Roles</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistBins <em>Picklist Bins</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklist()
+ * @model
+ * @generated
+ */
+public interface Picklist extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Picklist Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Picklist Id</em>' attribute.
+	 * @see #setPicklistId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklist_PicklistId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getPicklistId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist#getPicklistId <em>Picklist Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Picklist Id</em>' attribute.
+	 * @see #getPicklistId()
+	 * @generated
+	 */
+	void setPicklistId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Picklist Roles</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Picklist Roles</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklist_PicklistRoles()
+	 * @model
+	 * @generated
+	 */
+	EList<PicklistRole> getPicklistRoles();
+
+	/**
+	 * Returns the value of the '<em><b>Picklist Bins</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Picklist Bins</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklist_PicklistBins()
+	 * @model
+	 * @generated
+	 */
+	EList<PicklistBin> getPicklistBins();
+
+} // Picklist
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/PicklistBin.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/PicklistBin.java
new file mode 100644
index 0000000000000000000000000000000000000000..53b25f7e92586e7562b085e9b739ead9670823fa
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/PicklistBin.java
@@ -0,0 +1,84 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Picklist Bin</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getPicklistId <em>Picklist Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getBinLocationNumber <em>Bin Location Number</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getPicklistItems <em>Picklist Items</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistBin()
+ * @model
+ * @generated
+ */
+public interface PicklistBin extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Picklist Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Picklist Id</em>' attribute.
+	 * @see #setPicklistId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistBin_PicklistId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getPicklistId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getPicklistId <em>Picklist Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Picklist Id</em>' attribute.
+	 * @see #getPicklistId()
+	 * @generated
+	 */
+	void setPicklistId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Bin Location Number</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bin Location Number</em>' attribute.
+	 * @see #setBinLocationNumber(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistBin_BinLocationNumber()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getBinLocationNumber();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin#getBinLocationNumber <em>Bin Location Number</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bin Location Number</em>' attribute.
+	 * @see #getBinLocationNumber()
+	 * @generated
+	 */
+	void setBinLocationNumber(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Picklist Items</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Picklist Items</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistBin_PicklistItems()
+	 * @model
+	 * @generated
+	 */
+	EList<PicklistItem> getPicklistItems();
+
+} // PicklistBin
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/PicklistItem.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/PicklistItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2506d62ac206d71fc617dd88bb65f6815425bcb
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/PicklistItem.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Picklist Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem#getInventoryItem <em>Inventory Item</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistItem()
+ * @model
+ * @generated
+ */
+public interface PicklistItem extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Inventory Item</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Inventory Item</em>' reference.
+	 * @see #setInventoryItem(InventoryItem)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistItem_InventoryItem()
+	 * @model required="true"
+	 * @generated
+	 */
+	InventoryItem getInventoryItem();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem#getInventoryItem <em>Inventory Item</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Inventory Item</em>' reference.
+	 * @see #getInventoryItem()
+	 * @generated
+	 */
+	void setInventoryItem(InventoryItem value);
+
+} // PicklistItem
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/PicklistRole.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/PicklistRole.java
new file mode 100644
index 0000000000000000000000000000000000000000..5d2c290b1394e6f6d037013c814677e8e4b7d10f
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/PicklistRole.java
@@ -0,0 +1,92 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Picklist Role</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getPicklistId <em>Picklist Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getPartyId <em>Party Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getRoleTypeId <em>Role Type Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistRole()
+ * @model
+ * @generated
+ */
+public interface PicklistRole extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Picklist Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Picklist Id</em>' attribute.
+	 * @see #setPicklistId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistRole_PicklistId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getPicklistId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getPicklistId <em>Picklist Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Picklist Id</em>' attribute.
+	 * @see #getPicklistId()
+	 * @generated
+	 */
+	void setPicklistId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Party Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Party Id</em>' attribute.
+	 * @see #setPartyId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistRole_PartyId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getPartyId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getPartyId <em>Party Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Party Id</em>' attribute.
+	 * @see #getPartyId()
+	 * @generated
+	 */
+	void setPartyId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Role Type Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Role Type Id</em>' attribute.
+	 * @see #setRoleTypeId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#getPicklistRole_RoleTypeId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getRoleTypeId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole#getRoleTypeId <em>Role Type Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Role Type Id</em>' attribute.
+	 * @see #getRoleTypeId()
+	 * @generated
+	 */
+	void setRoleTypeId(String value);
+
+} // PicklistRole
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/InventoryItemImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/InventoryItemImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a1e44ef790e8a6dee9c7036246e90d9925593b7
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/InventoryItemImpl.java
@@ -0,0 +1,276 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Inventory Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.InventoryItemImpl#getInventoryItemId <em>Inventory Item Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.InventoryItemImpl#getContainerId <em>Container Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.InventoryItemImpl#getProductId <em>Product Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InventoryItemImpl extends MinimalEObjectImpl.Container implements InventoryItem {
+	/**
+	 * The default value of the '{@link #getInventoryItemId() <em>Inventory Item Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInventoryItemId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String INVENTORY_ITEM_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getInventoryItemId() <em>Inventory Item Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInventoryItemId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String inventoryItemId = INVENTORY_ITEM_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getContainerId() <em>Container Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getContainerId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CONTAINER_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getContainerId() <em>Container Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getContainerId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String containerId = CONTAINER_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getProductId() <em>Product Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProductId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PRODUCT_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getProductId() <em>Product Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProductId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String productId = PRODUCT_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected InventoryItemImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OFBizPackage.Literals.INVENTORY_ITEM;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getInventoryItemId() {
+		return inventoryItemId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInventoryItemId(String newInventoryItemId) {
+		String oldInventoryItemId = inventoryItemId;
+		inventoryItemId = newInventoryItemId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.INVENTORY_ITEM__INVENTORY_ITEM_ID,
+					oldInventoryItemId, inventoryItemId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getContainerId() {
+		return containerId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContainerId(String newContainerId) {
+		String oldContainerId = containerId;
+		containerId = newContainerId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.INVENTORY_ITEM__CONTAINER_ID,
+					oldContainerId, containerId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getProductId() {
+		return productId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProductId(String newProductId) {
+		String oldProductId = productId;
+		productId = newProductId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.INVENTORY_ITEM__PRODUCT_ID, oldProductId,
+					productId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OFBizPackage.INVENTORY_ITEM__INVENTORY_ITEM_ID:
+			return getInventoryItemId();
+		case OFBizPackage.INVENTORY_ITEM__CONTAINER_ID:
+			return getContainerId();
+		case OFBizPackage.INVENTORY_ITEM__PRODUCT_ID:
+			return getProductId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OFBizPackage.INVENTORY_ITEM__INVENTORY_ITEM_ID:
+			setInventoryItemId((String) newValue);
+			return;
+		case OFBizPackage.INVENTORY_ITEM__CONTAINER_ID:
+			setContainerId((String) newValue);
+			return;
+		case OFBizPackage.INVENTORY_ITEM__PRODUCT_ID:
+			setProductId((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.INVENTORY_ITEM__INVENTORY_ITEM_ID:
+			setInventoryItemId(INVENTORY_ITEM_ID_EDEFAULT);
+			return;
+		case OFBizPackage.INVENTORY_ITEM__CONTAINER_ID:
+			setContainerId(CONTAINER_ID_EDEFAULT);
+			return;
+		case OFBizPackage.INVENTORY_ITEM__PRODUCT_ID:
+			setProductId(PRODUCT_ID_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.INVENTORY_ITEM__INVENTORY_ITEM_ID:
+			return INVENTORY_ITEM_ID_EDEFAULT == null ? inventoryItemId != null
+					: !INVENTORY_ITEM_ID_EDEFAULT.equals(inventoryItemId);
+		case OFBizPackage.INVENTORY_ITEM__CONTAINER_ID:
+			return CONTAINER_ID_EDEFAULT == null ? containerId != null : !CONTAINER_ID_EDEFAULT.equals(containerId);
+		case OFBizPackage.INVENTORY_ITEM__PRODUCT_ID:
+			return PRODUCT_ID_EDEFAULT == null ? productId != null : !PRODUCT_ID_EDEFAULT.equals(productId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (inventoryItemId: ");
+		result.append(inventoryItemId);
+		result.append(", containerId: ");
+		result.append(containerId);
+		result.append(", productId: ");
+		result.append(productId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //InventoryItemImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizFactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizFactoryImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..6dc9e0b63ebbcad57c6e931855ef08f812a0a93d
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizFactoryImpl.java
@@ -0,0 +1,143 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OFBizFactoryImpl extends EFactoryImpl implements OFBizFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OFBizFactory init() {
+		try {
+			OFBizFactory theOFBizFactory = (OFBizFactory) EPackage.Registry.INSTANCE.getEFactory(OFBizPackage.eNS_URI);
+			if (theOFBizFactory != null) {
+				return theOFBizFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new OFBizFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OFBizFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case OFBizPackage.PICKLIST:
+			return createPicklist();
+		case OFBizPackage.PICKLIST_BIN:
+			return createPicklistBin();
+		case OFBizPackage.PICKLIST_ITEM:
+			return createPicklistItem();
+		case OFBizPackage.INVENTORY_ITEM:
+			return createInventoryItem();
+		case OFBizPackage.PICKLIST_ROLE:
+			return createPicklistRole();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Picklist createPicklist() {
+		PicklistImpl picklist = new PicklistImpl();
+		return picklist;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PicklistBin createPicklistBin() {
+		PicklistBinImpl picklistBin = new PicklistBinImpl();
+		return picklistBin;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PicklistItem createPicklistItem() {
+		PicklistItemImpl picklistItem = new PicklistItemImpl();
+		return picklistItem;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public InventoryItem createInventoryItem() {
+		InventoryItemImpl inventoryItem = new InventoryItemImpl();
+		return inventoryItem;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PicklistRole createPicklistRole() {
+		PicklistRoleImpl picklistRole = new PicklistRoleImpl();
+		return picklistRole;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OFBizPackage getOFBizPackage() {
+		return (OFBizPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static OFBizPackage getPackage() {
+		return OFBizPackage.eINSTANCE;
+	}
+
+} //OFBizFactoryImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..ab4a32c33d916d8919959949a8b9a21c9cbc4650
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java
@@ -0,0 +1,481 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OFBizPackageImpl extends EPackageImpl implements OFBizPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass picklistEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass picklistBinEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass picklistItemEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass inventoryItemEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass picklistRoleEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private OFBizPackageImpl() {
+		super(eNS_URI, OFBizFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link OFBizPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static OFBizPackage init() {
+		if (isInited)
+			return (OFBizPackage) EPackage.Registry.INSTANCE.getEPackage(OFBizPackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredOFBizPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		OFBizPackageImpl theOFBizPackage = registeredOFBizPackage instanceof OFBizPackageImpl
+				? (OFBizPackageImpl) registeredOFBizPackage
+				: new OFBizPackageImpl();
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		XMLTypePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPos_DatamodelPackage.eNS_URI);
+		IPos_DatamodelPackageImpl theIPos_DatamodelPackage = (IPos_DatamodelPackageImpl) (registeredPackage instanceof IPos_DatamodelPackageImpl
+				? registeredPackage
+				: IPos_DatamodelPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPosDevKitPackage.eNS_URI);
+		IPosDevKitPackageImpl theIPosDevKitPackage = (IPosDevKitPackageImpl) (registeredPackage instanceof IPosDevKitPackageImpl
+				? registeredPackage
+				: IPosDevKitPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI);
+		ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl
+				? registeredPackage
+				: ToozPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI);
+		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
+				? registeredPackage
+				: VDA5050Package.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theOFBizPackage.createPackageContents();
+		theIPos_DatamodelPackage.createPackageContents();
+		theIPosDevKitPackage.createPackageContents();
+		theToozPackage.createPackageContents();
+		theVDA5050Package.createPackageContents();
+		theOSMPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theOFBizPackage.initializePackageContents();
+		theIPos_DatamodelPackage.initializePackageContents();
+		theIPosDevKitPackage.initializePackageContents();
+		theToozPackage.initializePackageContents();
+		theVDA5050Package.initializePackageContents();
+		theOSMPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theOFBizPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(OFBizPackage.eNS_URI, theOFBizPackage);
+		return theOFBizPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPicklist() {
+		return picklistEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPicklist_PicklistId() {
+		return (EAttribute) picklistEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPicklist_PicklistRoles() {
+		return (EReference) picklistEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPicklist_PicklistBins() {
+		return (EReference) picklistEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPicklistBin() {
+		return picklistBinEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPicklistBin_PicklistId() {
+		return (EAttribute) picklistBinEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPicklistBin_BinLocationNumber() {
+		return (EAttribute) picklistBinEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPicklistBin_PicklistItems() {
+		return (EReference) picklistBinEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPicklistItem() {
+		return picklistItemEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPicklistItem_InventoryItem() {
+		return (EReference) picklistItemEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getInventoryItem() {
+		return inventoryItemEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getInventoryItem_InventoryItemId() {
+		return (EAttribute) inventoryItemEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getInventoryItem_ContainerId() {
+		return (EAttribute) inventoryItemEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getInventoryItem_ProductId() {
+		return (EAttribute) inventoryItemEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPicklistRole() {
+		return picklistRoleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPicklistRole_PicklistId() {
+		return (EAttribute) picklistRoleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPicklistRole_PartyId() {
+		return (EAttribute) picklistRoleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPicklistRole_RoleTypeId() {
+		return (EAttribute) picklistRoleEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OFBizFactory getOFBizFactory() {
+		return (OFBizFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		picklistEClass = createEClass(PICKLIST);
+		createEAttribute(picklistEClass, PICKLIST__PICKLIST_ID);
+		createEReference(picklistEClass, PICKLIST__PICKLIST_ROLES);
+		createEReference(picklistEClass, PICKLIST__PICKLIST_BINS);
+
+		picklistBinEClass = createEClass(PICKLIST_BIN);
+		createEAttribute(picklistBinEClass, PICKLIST_BIN__PICKLIST_ID);
+		createEAttribute(picklistBinEClass, PICKLIST_BIN__BIN_LOCATION_NUMBER);
+		createEReference(picklistBinEClass, PICKLIST_BIN__PICKLIST_ITEMS);
+
+		picklistItemEClass = createEClass(PICKLIST_ITEM);
+		createEReference(picklistItemEClass, PICKLIST_ITEM__INVENTORY_ITEM);
+
+		inventoryItemEClass = createEClass(INVENTORY_ITEM);
+		createEAttribute(inventoryItemEClass, INVENTORY_ITEM__INVENTORY_ITEM_ID);
+		createEAttribute(inventoryItemEClass, INVENTORY_ITEM__CONTAINER_ID);
+		createEAttribute(inventoryItemEClass, INVENTORY_ITEM__PRODUCT_ID);
+
+		picklistRoleEClass = createEClass(PICKLIST_ROLE);
+		createEAttribute(picklistRoleEClass, PICKLIST_ROLE__PICKLIST_ID);
+		createEAttribute(picklistRoleEClass, PICKLIST_ROLE__PARTY_ID);
+		createEAttribute(picklistRoleEClass, PICKLIST_ROLE__ROLE_TYPE_ID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		XMLTypePackage theXMLTypePackage = (XMLTypePackage) EPackage.Registry.INSTANCE
+				.getEPackage(XMLTypePackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(picklistEClass, Picklist.class, "Picklist", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPicklist_PicklistId(), theXMLTypePackage.getString(), "picklistId", null, 0, 1,
+				Picklist.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEReference(getPicklist_PicklistRoles(), this.getPicklistRole(), null, "picklistRoles", null, 0, -1,
+				Picklist.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPicklist_PicklistBins(), this.getPicklistBin(), null, "picklistBins", null, 0, -1,
+				Picklist.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(picklistBinEClass, PicklistBin.class, "PicklistBin", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPicklistBin_PicklistId(), theXMLTypePackage.getString(), "picklistId", null, 0, 1,
+				PicklistBin.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPicklistBin_BinLocationNumber(), theXMLTypePackage.getString(), "binLocationNumber", null, 0,
+				1, PicklistBin.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEReference(getPicklistBin_PicklistItems(), this.getPicklistItem(), null, "picklistItems", null, 0, -1,
+				PicklistBin.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(picklistItemEClass, PicklistItem.class, "PicklistItem", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getPicklistItem_InventoryItem(), this.getInventoryItem(), null, "inventoryItem", null, 1, 1,
+				PicklistItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(inventoryItemEClass, InventoryItem.class, "InventoryItem", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getInventoryItem_InventoryItemId(), theXMLTypePackage.getString(), "inventoryItemId", null, 0, 1,
+				InventoryItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getInventoryItem_ContainerId(), theXMLTypePackage.getString(), "containerId", null, 0, 1,
+				InventoryItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getInventoryItem_ProductId(), theXMLTypePackage.getString(), "productId", null, 0, 1,
+				InventoryItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(picklistRoleEClass, PicklistRole.class, "PicklistRole", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPicklistRole_PicklistId(), theXMLTypePackage.getString(), "picklistId", null, 0, 1,
+				PicklistRole.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPicklistRole_PartyId(), theXMLTypePackage.getString(), "partyId", null, 0, 1,
+				PicklistRole.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPicklistRole_RoleTypeId(), theXMLTypePackage.getString(), "roleTypeId", null, 0, 1,
+				PicklistRole.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+	}
+
+} //OFBizPackageImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistBinImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistBinImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..87d4dfad3c2c3609fcb572768e0c1106d4e66e16
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistBinImpl.java
@@ -0,0 +1,264 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Picklist Bin</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistBinImpl#getPicklistId <em>Picklist Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistBinImpl#getBinLocationNumber <em>Bin Location Number</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistBinImpl#getPicklistItems <em>Picklist Items</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PicklistBinImpl extends MinimalEObjectImpl.Container implements PicklistBin {
+	/**
+	 * The default value of the '{@link #getPicklistId() <em>Picklist Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPicklistId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PICKLIST_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPicklistId() <em>Picklist Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPicklistId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String picklistId = PICKLIST_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getBinLocationNumber() <em>Bin Location Number</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBinLocationNumber()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String BIN_LOCATION_NUMBER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getBinLocationNumber() <em>Bin Location Number</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBinLocationNumber()
+	 * @generated
+	 * @ordered
+	 */
+	protected String binLocationNumber = BIN_LOCATION_NUMBER_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getPicklistItems() <em>Picklist Items</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPicklistItems()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<PicklistItem> picklistItems;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PicklistBinImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OFBizPackage.Literals.PICKLIST_BIN;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPicklistId() {
+		return picklistId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPicklistId(String newPicklistId) {
+		String oldPicklistId = picklistId;
+		picklistId = newPicklistId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.PICKLIST_BIN__PICKLIST_ID, oldPicklistId,
+					picklistId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getBinLocationNumber() {
+		return binLocationNumber;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBinLocationNumber(String newBinLocationNumber) {
+		String oldBinLocationNumber = binLocationNumber;
+		binLocationNumber = newBinLocationNumber;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.PICKLIST_BIN__BIN_LOCATION_NUMBER,
+					oldBinLocationNumber, binLocationNumber));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<PicklistItem> getPicklistItems() {
+		if (picklistItems == null) {
+			picklistItems = new EObjectResolvingEList<PicklistItem>(PicklistItem.class, this,
+					OFBizPackage.PICKLIST_BIN__PICKLIST_ITEMS);
+		}
+		return picklistItems;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_BIN__PICKLIST_ID:
+			return getPicklistId();
+		case OFBizPackage.PICKLIST_BIN__BIN_LOCATION_NUMBER:
+			return getBinLocationNumber();
+		case OFBizPackage.PICKLIST_BIN__PICKLIST_ITEMS:
+			return getPicklistItems();
+		}
+		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 OFBizPackage.PICKLIST_BIN__PICKLIST_ID:
+			setPicklistId((String) newValue);
+			return;
+		case OFBizPackage.PICKLIST_BIN__BIN_LOCATION_NUMBER:
+			setBinLocationNumber((String) newValue);
+			return;
+		case OFBizPackage.PICKLIST_BIN__PICKLIST_ITEMS:
+			getPicklistItems().clear();
+			getPicklistItems().addAll((Collection<? extends PicklistItem>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_BIN__PICKLIST_ID:
+			setPicklistId(PICKLIST_ID_EDEFAULT);
+			return;
+		case OFBizPackage.PICKLIST_BIN__BIN_LOCATION_NUMBER:
+			setBinLocationNumber(BIN_LOCATION_NUMBER_EDEFAULT);
+			return;
+		case OFBizPackage.PICKLIST_BIN__PICKLIST_ITEMS:
+			getPicklistItems().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_BIN__PICKLIST_ID:
+			return PICKLIST_ID_EDEFAULT == null ? picklistId != null : !PICKLIST_ID_EDEFAULT.equals(picklistId);
+		case OFBizPackage.PICKLIST_BIN__BIN_LOCATION_NUMBER:
+			return BIN_LOCATION_NUMBER_EDEFAULT == null ? binLocationNumber != null
+					: !BIN_LOCATION_NUMBER_EDEFAULT.equals(binLocationNumber);
+		case OFBizPackage.PICKLIST_BIN__PICKLIST_ITEMS:
+			return picklistItems != null && !picklistItems.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (picklistId: ");
+		result.append(picklistId);
+		result.append(", binLocationNumber: ");
+		result.append(binLocationNumber);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PicklistBinImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..78b0e3f6bbeed943a13d4c7a26abaaba6886c836
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistImpl.java
@@ -0,0 +1,244 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Picklist</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistImpl#getPicklistId <em>Picklist Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistImpl#getPicklistRoles <em>Picklist Roles</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistImpl#getPicklistBins <em>Picklist Bins</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PicklistImpl extends MinimalEObjectImpl.Container implements Picklist {
+	/**
+	 * The default value of the '{@link #getPicklistId() <em>Picklist Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPicklistId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PICKLIST_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPicklistId() <em>Picklist Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPicklistId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String picklistId = PICKLIST_ID_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getPicklistRoles() <em>Picklist Roles</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPicklistRoles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<PicklistRole> picklistRoles;
+
+	/**
+	 * The cached value of the '{@link #getPicklistBins() <em>Picklist Bins</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPicklistBins()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<PicklistBin> picklistBins;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PicklistImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OFBizPackage.Literals.PICKLIST;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPicklistId() {
+		return picklistId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPicklistId(String newPicklistId) {
+		String oldPicklistId = picklistId;
+		picklistId = newPicklistId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.PICKLIST__PICKLIST_ID, oldPicklistId,
+					picklistId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<PicklistRole> getPicklistRoles() {
+		if (picklistRoles == null) {
+			picklistRoles = new EObjectResolvingEList<PicklistRole>(PicklistRole.class, this,
+					OFBizPackage.PICKLIST__PICKLIST_ROLES);
+		}
+		return picklistRoles;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<PicklistBin> getPicklistBins() {
+		if (picklistBins == null) {
+			picklistBins = new EObjectResolvingEList<PicklistBin>(PicklistBin.class, this,
+					OFBizPackage.PICKLIST__PICKLIST_BINS);
+		}
+		return picklistBins;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST__PICKLIST_ID:
+			return getPicklistId();
+		case OFBizPackage.PICKLIST__PICKLIST_ROLES:
+			return getPicklistRoles();
+		case OFBizPackage.PICKLIST__PICKLIST_BINS:
+			return getPicklistBins();
+		}
+		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 OFBizPackage.PICKLIST__PICKLIST_ID:
+			setPicklistId((String) newValue);
+			return;
+		case OFBizPackage.PICKLIST__PICKLIST_ROLES:
+			getPicklistRoles().clear();
+			getPicklistRoles().addAll((Collection<? extends PicklistRole>) newValue);
+			return;
+		case OFBizPackage.PICKLIST__PICKLIST_BINS:
+			getPicklistBins().clear();
+			getPicklistBins().addAll((Collection<? extends PicklistBin>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST__PICKLIST_ID:
+			setPicklistId(PICKLIST_ID_EDEFAULT);
+			return;
+		case OFBizPackage.PICKLIST__PICKLIST_ROLES:
+			getPicklistRoles().clear();
+			return;
+		case OFBizPackage.PICKLIST__PICKLIST_BINS:
+			getPicklistBins().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST__PICKLIST_ID:
+			return PICKLIST_ID_EDEFAULT == null ? picklistId != null : !PICKLIST_ID_EDEFAULT.equals(picklistId);
+		case OFBizPackage.PICKLIST__PICKLIST_ROLES:
+			return picklistRoles != null && !picklistRoles.isEmpty();
+		case OFBizPackage.PICKLIST__PICKLIST_BINS:
+			return picklistBins != null && !picklistBins.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (picklistId: ");
+		result.append(picklistId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PicklistImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistItemImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistItemImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..0f49e427b9ec3f4c6162e24f7e7743c0998fa2cf
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistItemImpl.java
@@ -0,0 +1,160 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Picklist Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistItemImpl#getInventoryItem <em>Inventory Item</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PicklistItemImpl extends MinimalEObjectImpl.Container implements PicklistItem {
+	/**
+	 * The cached value of the '{@link #getInventoryItem() <em>Inventory Item</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInventoryItem()
+	 * @generated
+	 * @ordered
+	 */
+	protected InventoryItem inventoryItem;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PicklistItemImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OFBizPackage.Literals.PICKLIST_ITEM;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public InventoryItem getInventoryItem() {
+		if (inventoryItem != null && inventoryItem.eIsProxy()) {
+			InternalEObject oldInventoryItem = (InternalEObject) inventoryItem;
+			inventoryItem = (InventoryItem) eResolveProxy(oldInventoryItem);
+			if (inventoryItem != oldInventoryItem) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							OFBizPackage.PICKLIST_ITEM__INVENTORY_ITEM, oldInventoryItem, inventoryItem));
+			}
+		}
+		return inventoryItem;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public InventoryItem basicGetInventoryItem() {
+		return inventoryItem;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInventoryItem(InventoryItem newInventoryItem) {
+		InventoryItem oldInventoryItem = inventoryItem;
+		inventoryItem = newInventoryItem;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.PICKLIST_ITEM__INVENTORY_ITEM,
+					oldInventoryItem, inventoryItem));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_ITEM__INVENTORY_ITEM:
+			if (resolve)
+				return getInventoryItem();
+			return basicGetInventoryItem();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_ITEM__INVENTORY_ITEM:
+			setInventoryItem((InventoryItem) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_ITEM__INVENTORY_ITEM:
+			setInventoryItem((InventoryItem) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_ITEM__INVENTORY_ITEM:
+			return inventoryItem != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //PicklistItemImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistRoleImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistRoleImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..4b3f8e8f6390c18ca41fb4cbfc93a9a0e872e45c
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/PicklistRoleImpl.java
@@ -0,0 +1,275 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Picklist Role</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistRoleImpl#getPicklistId <em>Picklist Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistRoleImpl#getPartyId <em>Party Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.PicklistRoleImpl#getRoleTypeId <em>Role Type Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PicklistRoleImpl extends MinimalEObjectImpl.Container implements PicklistRole {
+	/**
+	 * The default value of the '{@link #getPicklistId() <em>Picklist Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPicklistId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PICKLIST_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPicklistId() <em>Picklist Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPicklistId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String picklistId = PICKLIST_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPartyId() <em>Party Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPartyId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PARTY_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPartyId() <em>Party Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPartyId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String partyId = PARTY_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRoleTypeId() <em>Role Type Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRoleTypeId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ROLE_TYPE_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRoleTypeId() <em>Role Type Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRoleTypeId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String roleTypeId = ROLE_TYPE_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PicklistRoleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OFBizPackage.Literals.PICKLIST_ROLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPicklistId() {
+		return picklistId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPicklistId(String newPicklistId) {
+		String oldPicklistId = picklistId;
+		picklistId = newPicklistId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.PICKLIST_ROLE__PICKLIST_ID,
+					oldPicklistId, picklistId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPartyId() {
+		return partyId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPartyId(String newPartyId) {
+		String oldPartyId = partyId;
+		partyId = newPartyId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.PICKLIST_ROLE__PARTY_ID, oldPartyId,
+					partyId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRoleTypeId() {
+		return roleTypeId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRoleTypeId(String newRoleTypeId) {
+		String oldRoleTypeId = roleTypeId;
+		roleTypeId = newRoleTypeId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OFBizPackage.PICKLIST_ROLE__ROLE_TYPE_ID,
+					oldRoleTypeId, roleTypeId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_ROLE__PICKLIST_ID:
+			return getPicklistId();
+		case OFBizPackage.PICKLIST_ROLE__PARTY_ID:
+			return getPartyId();
+		case OFBizPackage.PICKLIST_ROLE__ROLE_TYPE_ID:
+			return getRoleTypeId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_ROLE__PICKLIST_ID:
+			setPicklistId((String) newValue);
+			return;
+		case OFBizPackage.PICKLIST_ROLE__PARTY_ID:
+			setPartyId((String) newValue);
+			return;
+		case OFBizPackage.PICKLIST_ROLE__ROLE_TYPE_ID:
+			setRoleTypeId((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_ROLE__PICKLIST_ID:
+			setPicklistId(PICKLIST_ID_EDEFAULT);
+			return;
+		case OFBizPackage.PICKLIST_ROLE__PARTY_ID:
+			setPartyId(PARTY_ID_EDEFAULT);
+			return;
+		case OFBizPackage.PICKLIST_ROLE__ROLE_TYPE_ID:
+			setRoleTypeId(ROLE_TYPE_ID_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OFBizPackage.PICKLIST_ROLE__PICKLIST_ID:
+			return PICKLIST_ID_EDEFAULT == null ? picklistId != null : !PICKLIST_ID_EDEFAULT.equals(picklistId);
+		case OFBizPackage.PICKLIST_ROLE__PARTY_ID:
+			return PARTY_ID_EDEFAULT == null ? partyId != null : !PARTY_ID_EDEFAULT.equals(partyId);
+		case OFBizPackage.PICKLIST_ROLE__ROLE_TYPE_ID:
+			return ROLE_TYPE_ID_EDEFAULT == null ? roleTypeId != null : !ROLE_TYPE_ID_EDEFAULT.equals(roleTypeId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (picklistId: ");
+		result.append(picklistId);
+		result.append(", partyId: ");
+		result.append(partyId);
+		result.append(", roleTypeId: ");
+		result.append(roleTypeId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PicklistRoleImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/util/OFBizAdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/util/OFBizAdapterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..e869ae934b9e98f7d286fba3d7687805fe67ffa2
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/util/OFBizAdapterFactory.java
@@ -0,0 +1,195 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage
+ * @generated
+ */
+public class OFBizAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static OFBizPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OFBizAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = OFBizPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OFBizSwitch<Adapter> modelSwitch = new OFBizSwitch<Adapter>() {
+		@Override
+		public Adapter casePicklist(Picklist object) {
+			return createPicklistAdapter();
+		}
+
+		@Override
+		public Adapter casePicklistBin(PicklistBin object) {
+			return createPicklistBinAdapter();
+		}
+
+		@Override
+		public Adapter casePicklistItem(PicklistItem object) {
+			return createPicklistItemAdapter();
+		}
+
+		@Override
+		public Adapter caseInventoryItem(InventoryItem object) {
+			return createInventoryItemAdapter();
+		}
+
+		@Override
+		public Adapter casePicklistRole(PicklistRole object) {
+			return createPicklistRoleAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist <em>Picklist</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 ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist
+	 * @generated
+	 */
+	public Adapter createPicklistAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin <em>Picklist Bin</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 ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin
+	 * @generated
+	 */
+	public Adapter createPicklistBinAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem <em>Picklist Item</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 ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem
+	 * @generated
+	 */
+	public Adapter createPicklistItemAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem <em>Inventory Item</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 ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.InventoryItem
+	 * @generated
+	 */
+	public Adapter createInventoryItemAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole <em>Picklist Role</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 ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole
+	 * @generated
+	 */
+	public Adapter createPicklistRoleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //OFBizAdapterFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/util/OFBizSwitch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/util/OFBizSwitch.java
new file mode 100644
index 0000000000000000000000000000000000000000..a276a9f3c871cc2e0893988f39f2fd6e78d3c170
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/util/OFBizSwitch.java
@@ -0,0 +1,200 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage
+ * @generated
+ */
+public class OFBizSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static OFBizPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OFBizSwitch() {
+		if (modelPackage == null) {
+			modelPackage = OFBizPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case OFBizPackage.PICKLIST: {
+			Picklist picklist = (Picklist) theEObject;
+			T result = casePicklist(picklist);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OFBizPackage.PICKLIST_BIN: {
+			PicklistBin picklistBin = (PicklistBin) theEObject;
+			T result = casePicklistBin(picklistBin);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OFBizPackage.PICKLIST_ITEM: {
+			PicklistItem picklistItem = (PicklistItem) theEObject;
+			T result = casePicklistItem(picklistItem);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OFBizPackage.INVENTORY_ITEM: {
+			InventoryItem inventoryItem = (InventoryItem) theEObject;
+			T result = caseInventoryItem(inventoryItem);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OFBizPackage.PICKLIST_ROLE: {
+			PicklistRole picklistRole = (PicklistRole) theEObject;
+			T result = casePicklistRole(picklistRole);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Picklist</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>Picklist</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePicklist(Picklist object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Picklist Bin</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>Picklist Bin</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePicklistBin(PicklistBin object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Picklist Item</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>Picklist Item</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePicklistItem(PicklistItem object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Inventory Item</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>Inventory Item</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseInventoryItem(InventoryItem object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Picklist Role</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>Picklist Role</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePicklistRole(PicklistRole object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //OFBizSwitch
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMExtractedAttributes.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMExtractedAttributes.java
new file mode 100644
index 0000000000000000000000000000000000000000..04071397931082c8bbf5e4b513ac2772cc05ba2e
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMExtractedAttributes.java
@@ -0,0 +1,115 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Extracted Attributes</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getBatteryChargeLevel <em>Battery Charge Level</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getLoadedItems <em>Loaded Items</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getErrors <em>Errors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getTheta <em>Theta</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes()
+ * @model
+ * @generated
+ */
+public interface OSMExtractedAttributes extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Battery Charge Level</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Battery Charge Level</em>' attribute.
+	 * @see #setBatteryChargeLevel(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes_BatteryChargeLevel()
+	 * @model
+	 * @generated
+	 */
+	float getBatteryChargeLevel();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getBatteryChargeLevel <em>Battery Charge Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Battery Charge Level</em>' attribute.
+	 * @see #getBatteryChargeLevel()
+	 * @generated
+	 */
+	void setBatteryChargeLevel(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Loaded Items</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Loaded Items</em>' attribute.
+	 * @see #setLoadedItems(int[])
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes_LoadedItems()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.IntArray"
+	 * @generated
+	 */
+	int[] getLoadedItems();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getLoadedItems <em>Loaded Items</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Loaded Items</em>' attribute.
+	 * @see #getLoadedItems()
+	 * @generated
+	 */
+	void setLoadedItems(int[] value);
+
+	/**
+	 * Returns the value of the '<em><b>Errors</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Errors</em>' attribute.
+	 * @see #setErrors(int[])
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes_Errors()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.IntArray"
+	 * @generated
+	 */
+	int[] getErrors();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getErrors <em>Errors</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Errors</em>' attribute.
+	 * @see #getErrors()
+	 * @generated
+	 */
+	void setErrors(int[] value);
+
+	/**
+	 * Returns the value of the '<em><b>Theta</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Theta</em>' attribute.
+	 * @see #setTheta(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes_Theta()
+	 * @model
+	 * @generated
+	 */
+	float getTheta();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getTheta <em>Theta</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Theta</em>' attribute.
+	 * @see #getTheta()
+	 * @generated
+	 */
+	void setTheta(float value);
+
+} // OSMExtractedAttributes
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..3f8c7c97e3d6f90931e9cd356ef413a82056290b
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMFactory.java
@@ -0,0 +1,96 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage
+ * @generated
+ */
+public interface OSMFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	OSMFactory eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Object</em>'.
+	 * @generated
+	 */
+	OSMObject createOSMObject();
+
+	/**
+	 * Returns a new object of class '<em>Position</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Position</em>'.
+	 * @generated
+	 */
+	OSMPosition createOSMPosition();
+
+	/**
+	 * Returns a new object of class '<em>Point</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Point</em>'.
+	 * @generated
+	 */
+	OSMPoint createOSMPoint();
+
+	/**
+	 * Returns a new object of class '<em>Orientation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Orientation</em>'.
+	 * @generated
+	 */
+	OSMOrientation createOSMOrientation();
+
+	/**
+	 * Returns a new object of class '<em>Extracted Attributes</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Extracted Attributes</em>'.
+	 * @generated
+	 */
+	OSMExtractedAttributes createOSMExtractedAttributes();
+
+	/**
+	 * Returns a new object of class '<em>Zone Descriptor</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Zone Descriptor</em>'.
+	 * @generated
+	 */
+	OSMZoneDescriptor createOSMZoneDescriptor();
+
+	/**
+	 * Returns a new object of class '<em>Monitoring Target</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Monitoring Target</em>'.
+	 * @generated
+	 */
+	OSMMonitoringTarget createOSMMonitoringTarget();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	OSMPackage getOSMPackage();
+
+} //OSMFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMMonitoringTarget.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMMonitoringTarget.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a15f73ef9fe1b79944dcf2fe5d0bf0d7addfaa6
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMMonitoringTarget.java
@@ -0,0 +1,69 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Monitoring Target</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getMonitoringTaskId <em>Monitoring Task Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getProtocol <em>Protocol</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMMonitoringTarget()
+ * @model
+ * @generated
+ */
+public interface OSMMonitoringTarget extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Monitoring Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Monitoring Task Id</em>' attribute.
+	 * @see #setMonitoringTaskId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMMonitoringTarget_MonitoringTaskId()
+	 * @model
+	 * @generated
+	 */
+	String getMonitoringTaskId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getMonitoringTaskId <em>Monitoring Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Monitoring Task Id</em>' attribute.
+	 * @see #getMonitoringTaskId()
+	 * @generated
+	 */
+	void setMonitoringTaskId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Protocol</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Protocol</em>' attribute.
+	 * @see #setProtocol(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMMonitoringTarget_Protocol()
+	 * @model
+	 * @generated
+	 */
+	String getProtocol();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getProtocol <em>Protocol</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Protocol</em>' attribute.
+	 * @see #getProtocol()
+	 * @generated
+	 */
+	void setProtocol(String value);
+
+} // OSMMonitoringTarget
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMObject.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMObject.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a6b9c540113e03e668429f0285c14b3660c962a
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMObject.java
@@ -0,0 +1,222 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getId <em>Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorId <em>Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorType <em>Sensor Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmposition <em>Osmposition</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmorientation <em>Osmorientation</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmextractedattributes <em>Osmextractedattributes</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getLastPosUpdate <em>Last Pos Update</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmzonedescriptor <em>Osmzonedescriptor</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject()
+ * @model
+ * @generated
+ */
+public interface OSMObject extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Id</em>' attribute.
+	 * @see #setId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Id()
+	 * @model
+	 * @generated
+	 */
+	String getId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getId <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Id</em>' attribute.
+	 * @see #getId()
+	 * @generated
+	 */
+	void setId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sensor Id</em>' attribute.
+	 * @see #setSensorId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_SensorId()
+	 * @model
+	 * @generated
+	 */
+	String getSensorId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorId <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sensor Id</em>' attribute.
+	 * @see #getSensorId()
+	 * @generated
+	 */
+	void setSensorId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Type()
+	 * @model
+	 * @generated
+	 */
+	String getType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sensor Type</em>' attribute.
+	 * @see #setSensorType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_SensorType()
+	 * @model
+	 * @generated
+	 */
+	String getSensorType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorType <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sensor Type</em>' attribute.
+	 * @see #getSensorType()
+	 * @generated
+	 */
+	void setSensorType(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Osmposition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Osmposition</em>' reference.
+	 * @see #setOsmposition(OSMPosition)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Osmposition()
+	 * @model
+	 * @generated
+	 */
+	OSMPosition getOsmposition();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmposition <em>Osmposition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Osmposition</em>' reference.
+	 * @see #getOsmposition()
+	 * @generated
+	 */
+	void setOsmposition(OSMPosition value);
+
+	/**
+	 * Returns the value of the '<em><b>Osmorientation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Osmorientation</em>' reference.
+	 * @see #setOsmorientation(OSMOrientation)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Osmorientation()
+	 * @model
+	 * @generated
+	 */
+	OSMOrientation getOsmorientation();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmorientation <em>Osmorientation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Osmorientation</em>' reference.
+	 * @see #getOsmorientation()
+	 * @generated
+	 */
+	void setOsmorientation(OSMOrientation value);
+
+	/**
+	 * Returns the value of the '<em><b>Osmextractedattributes</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Osmextractedattributes</em>' reference.
+	 * @see #setOsmextractedattributes(OSMExtractedAttributes)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Osmextractedattributes()
+	 * @model
+	 * @generated
+	 */
+	OSMExtractedAttributes getOsmextractedattributes();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmextractedattributes <em>Osmextractedattributes</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Osmextractedattributes</em>' reference.
+	 * @see #getOsmextractedattributes()
+	 * @generated
+	 */
+	void setOsmextractedattributes(OSMExtractedAttributes value);
+
+	/**
+	 * Returns the value of the '<em><b>Last Pos Update</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Last Pos Update</em>' attribute.
+	 * @see #setLastPosUpdate(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_LastPosUpdate()
+	 * @model
+	 * @generated
+	 */
+	String getLastPosUpdate();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getLastPosUpdate <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Last Pos Update</em>' attribute.
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 */
+	void setLastPosUpdate(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Osmzonedescriptor</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Osmzonedescriptor</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Osmzonedescriptor()
+	 * @model
+	 * @generated
+	 */
+	EList<OSMZoneDescriptor> getOsmzonedescriptor();
+
+} // OSMObject
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMOrientation.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMOrientation.java
new file mode 100644
index 0000000000000000000000000000000000000000..e47fb1230aefafc10746c90f4e939516f9866332
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMOrientation.java
@@ -0,0 +1,115 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Orientation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getZ <em>Z</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getW <em>W</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation()
+ * @model
+ * @generated
+ */
+public interface OSMOrientation extends EObject {
+	/**
+	 * Returns the value of the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>X</em>' attribute.
+	 * @see #setX(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation_X()
+	 * @model
+	 * @generated
+	 */
+	float getX();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getX <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>X</em>' attribute.
+	 * @see #getX()
+	 * @generated
+	 */
+	void setX(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Y</em>' attribute.
+	 * @see #setY(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation_Y()
+	 * @model
+	 * @generated
+	 */
+	float getY();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getY <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Y</em>' attribute.
+	 * @see #getY()
+	 * @generated
+	 */
+	void setY(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Z</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Z</em>' attribute.
+	 * @see #setZ(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation_Z()
+	 * @model
+	 * @generated
+	 */
+	float getZ();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getZ <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Z</em>' attribute.
+	 * @see #getZ()
+	 * @generated
+	 */
+	void setZ(float value);
+
+	/**
+	 * Returns the value of the '<em><b>W</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>W</em>' attribute.
+	 * @see #setW(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation_W()
+	 * @model
+	 * @generated
+	 */
+	float getW();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getW <em>W</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>W</em>' attribute.
+	 * @see #getW()
+	 * @generated
+	 */
+	void setW(float value);
+
+} // OSMOrientation
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPackage.java
new file mode 100644
index 0000000000000000000000000000000000000000..63c47c07293887fa724166c5ad0a285ee20a4702
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPackage.java
@@ -0,0 +1,1177 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface OSMPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "OSM";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "osm";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "osm";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	OSMPackage eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl <em>Object</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMObject()
+	 * @generated
+	 */
+	int OSM_OBJECT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__SENSOR_ID = 1;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__TYPE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__SENSOR_TYPE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Osmposition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__OSMPOSITION = 4;
+
+	/**
+	 * The feature id for the '<em><b>Osmorientation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__OSMORIENTATION = 5;
+
+	/**
+	 * The feature id for the '<em><b>Osmextractedattributes</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__OSMEXTRACTEDATTRIBUTES = 6;
+
+	/**
+	 * The feature id for the '<em><b>Last Pos Update</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__LAST_POS_UPDATE = 7;
+
+	/**
+	 * The feature id for the '<em><b>Osmzonedescriptor</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__OSMZONEDESCRIPTOR = 8;
+
+	/**
+	 * The number of structural features of the '<em>Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT_FEATURE_COUNT = 9;
+
+	/**
+	 * The number of operations of the '<em>Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl <em>Position</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMPosition()
+	 * @generated
+	 */
+	int OSM_POSITION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Ref System Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION__REF_SYSTEM_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Accuracy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION__ACCURACY = 1;
+
+	/**
+	 * The feature id for the '<em><b>Osmpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION__OSMPOINT = 2;
+
+	/**
+	 * The number of structural features of the '<em>Position</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Position</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl <em>Point</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMPoint()
+	 * @generated
+	 */
+	int OSM_POINT = 2;
+
+	/**
+	 * The feature id for the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT__X = 0;
+
+	/**
+	 * The feature id for the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT__Y = 1;
+
+	/**
+	 * The feature id for the '<em><b>Z</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT__Z = 2;
+
+	/**
+	 * The number of structural features of the '<em>Point</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Point</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl <em>Orientation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMOrientation()
+	 * @generated
+	 */
+	int OSM_ORIENTATION = 3;
+
+	/**
+	 * The feature id for the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION__X = 0;
+
+	/**
+	 * The feature id for the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION__Y = 1;
+
+	/**
+	 * The feature id for the '<em><b>Z</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION__Z = 2;
+
+	/**
+	 * The feature id for the '<em><b>W</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION__W = 3;
+
+	/**
+	 * The number of structural features of the '<em>Orientation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION_FEATURE_COUNT = 4;
+
+	/**
+	 * The number of operations of the '<em>Orientation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl <em>Extracted Attributes</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMExtractedAttributes()
+	 * @generated
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES = 4;
+
+	/**
+	 * The feature id for the '<em><b>Battery Charge Level</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL = 0;
+
+	/**
+	 * The feature id for the '<em><b>Loaded Items</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS = 1;
+
+	/**
+	 * The feature id for the '<em><b>Errors</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES__ERRORS = 2;
+
+	/**
+	 * The feature id for the '<em><b>Theta</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES__THETA = 3;
+
+	/**
+	 * The number of structural features of the '<em>Extracted Attributes</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES_FEATURE_COUNT = 4;
+
+	/**
+	 * The number of operations of the '<em>Extracted Attributes</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl <em>Zone Descriptor</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMZoneDescriptor()
+	 * @generated
+	 */
+	int OSM_ZONE_DESCRIPTOR = 5;
+
+	/**
+	 * The feature id for the '<em><b>Zone Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ZONE_DESCRIPTOR__ZONE_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Notification Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE = 1;
+
+	/**
+	 * The number of structural features of the '<em>Zone Descriptor</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ZONE_DESCRIPTOR_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Zone Descriptor</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ZONE_DESCRIPTOR_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl <em>Monitoring Target</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMMonitoringTarget()
+	 * @generated
+	 */
+	int OSM_MONITORING_TARGET = 6;
+
+	/**
+	 * The feature id for the '<em><b>Monitoring Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_MONITORING_TARGET__MONITORING_TASK_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Protocol</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_MONITORING_TARGET__PROTOCOL = 1;
+
+	/**
+	 * The number of structural features of the '<em>Monitoring Target</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_MONITORING_TARGET_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Monitoring Target</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_MONITORING_TARGET_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject <em>Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Object</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject
+	 * @generated
+	 */
+	EClass getOSMObject();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getId()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_Id();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorId <em>Sensor Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensor Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorId()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_SensorId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getType()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorType <em>Sensor Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensor Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorType()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_SensorType();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmposition <em>Osmposition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Osmposition</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmposition()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EReference getOSMObject_Osmposition();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmorientation <em>Osmorientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Osmorientation</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmorientation()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EReference getOSMObject_Osmorientation();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmextractedattributes <em>Osmextractedattributes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Osmextractedattributes</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmextractedattributes()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EReference getOSMObject_Osmextractedattributes();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getLastPosUpdate <em>Last Pos Update</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Last Pos Update</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getLastPosUpdate()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_LastPosUpdate();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmzonedescriptor <em>Osmzonedescriptor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Osmzonedescriptor</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmzonedescriptor()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EReference getOSMObject_Osmzonedescriptor();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition <em>Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Position</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition
+	 * @generated
+	 */
+	EClass getOSMPosition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getRefSystemId <em>Ref System Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Ref System Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getRefSystemId()
+	 * @see #getOSMPosition()
+	 * @generated
+	 */
+	EAttribute getOSMPosition_RefSystemId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getAccuracy <em>Accuracy</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Accuracy</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getAccuracy()
+	 * @see #getOSMPosition()
+	 * @generated
+	 */
+	EAttribute getOSMPosition_Accuracy();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getOsmpoint <em>Osmpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Osmpoint</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getOsmpoint()
+	 * @see #getOSMPosition()
+	 * @generated
+	 */
+	EReference getOSMPosition_Osmpoint();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint <em>Point</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Point</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint
+	 * @generated
+	 */
+	EClass getOSMPoint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getX <em>X</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>X</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getX()
+	 * @see #getOSMPoint()
+	 * @generated
+	 */
+	EAttribute getOSMPoint_X();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getY <em>Y</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Y</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getY()
+	 * @see #getOSMPoint()
+	 * @generated
+	 */
+	EAttribute getOSMPoint_Y();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getZ <em>Z</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Z</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getZ()
+	 * @see #getOSMPoint()
+	 * @generated
+	 */
+	EAttribute getOSMPoint_Z();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation <em>Orientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Orientation</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation
+	 * @generated
+	 */
+	EClass getOSMOrientation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getX <em>X</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>X</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getX()
+	 * @see #getOSMOrientation()
+	 * @generated
+	 */
+	EAttribute getOSMOrientation_X();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getY <em>Y</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Y</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getY()
+	 * @see #getOSMOrientation()
+	 * @generated
+	 */
+	EAttribute getOSMOrientation_Y();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getZ <em>Z</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Z</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getZ()
+	 * @see #getOSMOrientation()
+	 * @generated
+	 */
+	EAttribute getOSMOrientation_Z();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getW <em>W</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>W</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getW()
+	 * @see #getOSMOrientation()
+	 * @generated
+	 */
+	EAttribute getOSMOrientation_W();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes <em>Extracted Attributes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Extracted Attributes</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes
+	 * @generated
+	 */
+	EClass getOSMExtractedAttributes();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getBatteryChargeLevel <em>Battery Charge Level</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Battery Charge Level</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getBatteryChargeLevel()
+	 * @see #getOSMExtractedAttributes()
+	 * @generated
+	 */
+	EAttribute getOSMExtractedAttributes_BatteryChargeLevel();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getLoadedItems <em>Loaded Items</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Loaded Items</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getLoadedItems()
+	 * @see #getOSMExtractedAttributes()
+	 * @generated
+	 */
+	EAttribute getOSMExtractedAttributes_LoadedItems();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getErrors <em>Errors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Errors</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getErrors()
+	 * @see #getOSMExtractedAttributes()
+	 * @generated
+	 */
+	EAttribute getOSMExtractedAttributes_Errors();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getTheta <em>Theta</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Theta</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getTheta()
+	 * @see #getOSMExtractedAttributes()
+	 * @generated
+	 */
+	EAttribute getOSMExtractedAttributes_Theta();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor <em>Zone Descriptor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Zone Descriptor</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor
+	 * @generated
+	 */
+	EClass getOSMZoneDescriptor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getZoneId <em>Zone Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Zone Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getZoneId()
+	 * @see #getOSMZoneDescriptor()
+	 * @generated
+	 */
+	EAttribute getOSMZoneDescriptor_ZoneId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getNotificationType <em>Notification Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Notification Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getNotificationType()
+	 * @see #getOSMZoneDescriptor()
+	 * @generated
+	 */
+	EAttribute getOSMZoneDescriptor_NotificationType();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget <em>Monitoring Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Monitoring Target</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget
+	 * @generated
+	 */
+	EClass getOSMMonitoringTarget();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getMonitoringTaskId <em>Monitoring Task Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Monitoring Task Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getMonitoringTaskId()
+	 * @see #getOSMMonitoringTarget()
+	 * @generated
+	 */
+	EAttribute getOSMMonitoringTarget_MonitoringTaskId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getProtocol <em>Protocol</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Protocol</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getProtocol()
+	 * @see #getOSMMonitoringTarget()
+	 * @generated
+	 */
+	EAttribute getOSMMonitoringTarget_Protocol();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	OSMFactory getOSMFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl <em>Object</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMObject()
+		 * @generated
+		 */
+		EClass OSM_OBJECT = eINSTANCE.getOSMObject();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__ID = eINSTANCE.getOSMObject_Id();
+
+		/**
+		 * The meta object literal for the '<em><b>Sensor Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__SENSOR_ID = eINSTANCE.getOSMObject_SensorId();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__TYPE = eINSTANCE.getOSMObject_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Sensor Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__SENSOR_TYPE = eINSTANCE.getOSMObject_SensorType();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmposition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_OBJECT__OSMPOSITION = eINSTANCE.getOSMObject_Osmposition();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmorientation</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_OBJECT__OSMORIENTATION = eINSTANCE.getOSMObject_Osmorientation();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmextractedattributes</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_OBJECT__OSMEXTRACTEDATTRIBUTES = eINSTANCE.getOSMObject_Osmextractedattributes();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Pos Update</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__LAST_POS_UPDATE = eINSTANCE.getOSMObject_LastPosUpdate();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmzonedescriptor</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_OBJECT__OSMZONEDESCRIPTOR = eINSTANCE.getOSMObject_Osmzonedescriptor();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl <em>Position</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMPosition()
+		 * @generated
+		 */
+		EClass OSM_POSITION = eINSTANCE.getOSMPosition();
+
+		/**
+		 * The meta object literal for the '<em><b>Ref System Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POSITION__REF_SYSTEM_ID = eINSTANCE.getOSMPosition_RefSystemId();
+
+		/**
+		 * The meta object literal for the '<em><b>Accuracy</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POSITION__ACCURACY = eINSTANCE.getOSMPosition_Accuracy();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmpoint</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_POSITION__OSMPOINT = eINSTANCE.getOSMPosition_Osmpoint();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl <em>Point</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMPoint()
+		 * @generated
+		 */
+		EClass OSM_POINT = eINSTANCE.getOSMPoint();
+
+		/**
+		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POINT__X = eINSTANCE.getOSMPoint_X();
+
+		/**
+		 * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POINT__Y = eINSTANCE.getOSMPoint_Y();
+
+		/**
+		 * The meta object literal for the '<em><b>Z</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POINT__Z = eINSTANCE.getOSMPoint_Z();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl <em>Orientation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMOrientation()
+		 * @generated
+		 */
+		EClass OSM_ORIENTATION = eINSTANCE.getOSMOrientation();
+
+		/**
+		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ORIENTATION__X = eINSTANCE.getOSMOrientation_X();
+
+		/**
+		 * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ORIENTATION__Y = eINSTANCE.getOSMOrientation_Y();
+
+		/**
+		 * The meta object literal for the '<em><b>Z</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ORIENTATION__Z = eINSTANCE.getOSMOrientation_Z();
+
+		/**
+		 * The meta object literal for the '<em><b>W</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ORIENTATION__W = eINSTANCE.getOSMOrientation_W();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl <em>Extracted Attributes</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMExtractedAttributes()
+		 * @generated
+		 */
+		EClass OSM_EXTRACTED_ATTRIBUTES = eINSTANCE.getOSMExtractedAttributes();
+
+		/**
+		 * The meta object literal for the '<em><b>Battery Charge Level</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL = eINSTANCE
+				.getOSMExtractedAttributes_BatteryChargeLevel();
+
+		/**
+		 * The meta object literal for the '<em><b>Loaded Items</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS = eINSTANCE.getOSMExtractedAttributes_LoadedItems();
+
+		/**
+		 * The meta object literal for the '<em><b>Errors</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_EXTRACTED_ATTRIBUTES__ERRORS = eINSTANCE.getOSMExtractedAttributes_Errors();
+
+		/**
+		 * The meta object literal for the '<em><b>Theta</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_EXTRACTED_ATTRIBUTES__THETA = eINSTANCE.getOSMExtractedAttributes_Theta();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl <em>Zone Descriptor</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMZoneDescriptor()
+		 * @generated
+		 */
+		EClass OSM_ZONE_DESCRIPTOR = eINSTANCE.getOSMZoneDescriptor();
+
+		/**
+		 * The meta object literal for the '<em><b>Zone Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ZONE_DESCRIPTOR__ZONE_ID = eINSTANCE.getOSMZoneDescriptor_ZoneId();
+
+		/**
+		 * The meta object literal for the '<em><b>Notification Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE = eINSTANCE.getOSMZoneDescriptor_NotificationType();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl <em>Monitoring Target</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMMonitoringTarget()
+		 * @generated
+		 */
+		EClass OSM_MONITORING_TARGET = eINSTANCE.getOSMMonitoringTarget();
+
+		/**
+		 * The meta object literal for the '<em><b>Monitoring Task Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_MONITORING_TARGET__MONITORING_TASK_ID = eINSTANCE.getOSMMonitoringTarget_MonitoringTaskId();
+
+		/**
+		 * The meta object literal for the '<em><b>Protocol</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_MONITORING_TARGET__PROTOCOL = eINSTANCE.getOSMMonitoringTarget_Protocol();
+
+	}
+
+} //OSMPackage
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPoint.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPoint.java
new file mode 100644
index 0000000000000000000000000000000000000000..6613f90cbbbe1c2c5840f70bd659744cd3257c70
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPoint.java
@@ -0,0 +1,92 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Point</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getZ <em>Z</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPoint()
+ * @model
+ * @generated
+ */
+public interface OSMPoint extends EObject {
+	/**
+	 * Returns the value of the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>X</em>' attribute.
+	 * @see #setX(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPoint_X()
+	 * @model
+	 * @generated
+	 */
+	float getX();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getX <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>X</em>' attribute.
+	 * @see #getX()
+	 * @generated
+	 */
+	void setX(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Y</em>' attribute.
+	 * @see #setY(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPoint_Y()
+	 * @model
+	 * @generated
+	 */
+	float getY();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getY <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Y</em>' attribute.
+	 * @see #getY()
+	 * @generated
+	 */
+	void setY(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Z</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Z</em>' attribute.
+	 * @see #setZ(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPoint_Z()
+	 * @model
+	 * @generated
+	 */
+	float getZ();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getZ <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Z</em>' attribute.
+	 * @see #getZ()
+	 * @generated
+	 */
+	void setZ(float value);
+
+} // OSMPoint
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPosition.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPosition.java
new file mode 100644
index 0000000000000000000000000000000000000000..44164cbdd3f572835b204de2f0669fa7bf98a289
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPosition.java
@@ -0,0 +1,92 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Position</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getRefSystemId <em>Ref System Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getAccuracy <em>Accuracy</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getOsmpoint <em>Osmpoint</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPosition()
+ * @model
+ * @generated
+ */
+public interface OSMPosition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Ref System Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ref System Id</em>' attribute.
+	 * @see #setRefSystemId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPosition_RefSystemId()
+	 * @model
+	 * @generated
+	 */
+	String getRefSystemId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getRefSystemId <em>Ref System Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ref System Id</em>' attribute.
+	 * @see #getRefSystemId()
+	 * @generated
+	 */
+	void setRefSystemId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Accuracy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Accuracy</em>' attribute.
+	 * @see #setAccuracy(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPosition_Accuracy()
+	 * @model
+	 * @generated
+	 */
+	float getAccuracy();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getAccuracy <em>Accuracy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Accuracy</em>' attribute.
+	 * @see #getAccuracy()
+	 * @generated
+	 */
+	void setAccuracy(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Osmpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Osmpoint</em>' reference.
+	 * @see #setOsmpoint(OSMPoint)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPosition_Osmpoint()
+	 * @model
+	 * @generated
+	 */
+	OSMPoint getOsmpoint();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getOsmpoint <em>Osmpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Osmpoint</em>' reference.
+	 * @see #getOsmpoint()
+	 * @generated
+	 */
+	void setOsmpoint(OSMPoint value);
+
+} // OSMPosition
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMZoneDescriptor.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMZoneDescriptor.java
new file mode 100644
index 0000000000000000000000000000000000000000..0f210c3202db33debb45a857f78559e8eb4be12b
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMZoneDescriptor.java
@@ -0,0 +1,69 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Zone Descriptor</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getZoneId <em>Zone Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getNotificationType <em>Notification Type</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMZoneDescriptor()
+ * @model
+ * @generated
+ */
+public interface OSMZoneDescriptor extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Zone Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Zone Id</em>' attribute.
+	 * @see #setZoneId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMZoneDescriptor_ZoneId()
+	 * @model
+	 * @generated
+	 */
+	String getZoneId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getZoneId <em>Zone Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Zone Id</em>' attribute.
+	 * @see #getZoneId()
+	 * @generated
+	 */
+	void setZoneId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Notification Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Notification Type</em>' attribute.
+	 * @see #setNotificationType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMZoneDescriptor_NotificationType()
+	 * @model
+	 * @generated
+	 */
+	String getNotificationType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getNotificationType <em>Notification Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Notification Type</em>' attribute.
+	 * @see #getNotificationType()
+	 * @generated
+	 */
+	void setNotificationType(String value);
+
+} // OSMZoneDescriptor
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMExtractedAttributesImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMExtractedAttributesImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..6aa60226162496942c3e6ac7d4228604dadada25
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMExtractedAttributesImpl.java
@@ -0,0 +1,331 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extracted Attributes</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl#getBatteryChargeLevel <em>Battery Charge Level</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl#getLoadedItems <em>Loaded Items</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl#getErrors <em>Errors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl#getTheta <em>Theta</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMExtractedAttributesImpl extends MinimalEObjectImpl.Container implements OSMExtractedAttributes {
+	/**
+	 * The default value of the '{@link #getBatteryChargeLevel() <em>Battery Charge Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBatteryChargeLevel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float BATTERY_CHARGE_LEVEL_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getBatteryChargeLevel() <em>Battery Charge Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBatteryChargeLevel()
+	 * @generated
+	 * @ordered
+	 */
+	protected float batteryChargeLevel = BATTERY_CHARGE_LEVEL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLoadedItems() <em>Loaded Items</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLoadedItems()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] LOADED_ITEMS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLoadedItems() <em>Loaded Items</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLoadedItems()
+	 * @generated
+	 * @ordered
+	 */
+	protected int[] loadedItems = LOADED_ITEMS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getErrors() <em>Errors</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrors()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] ERRORS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrors() <em>Errors</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrors()
+	 * @generated
+	 * @ordered
+	 */
+	protected int[] errors = ERRORS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTheta() <em>Theta</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTheta()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float THETA_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getTheta() <em>Theta</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTheta()
+	 * @generated
+	 * @ordered
+	 */
+	protected float theta = THETA_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMExtractedAttributesImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_EXTRACTED_ATTRIBUTES;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getBatteryChargeLevel() {
+		return batteryChargeLevel;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBatteryChargeLevel(float newBatteryChargeLevel) {
+		float oldBatteryChargeLevel = batteryChargeLevel;
+		batteryChargeLevel = newBatteryChargeLevel;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL, oldBatteryChargeLevel,
+					batteryChargeLevel));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int[] getLoadedItems() {
+		return loadedItems;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLoadedItems(int[] newLoadedItems) {
+		int[] oldLoadedItems = loadedItems;
+		loadedItems = newLoadedItems;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS,
+					oldLoadedItems, loadedItems));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int[] getErrors() {
+		return errors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrors(int[] newErrors) {
+		int[] oldErrors = errors;
+		errors = newErrors;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS,
+					oldErrors, errors));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getTheta() {
+		return theta;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTheta(float newTheta) {
+		float oldTheta = theta;
+		theta = newTheta;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA, oldTheta,
+					theta));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL:
+			return getBatteryChargeLevel();
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS:
+			return getLoadedItems();
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS:
+			return getErrors();
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA:
+			return getTheta();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL:
+			setBatteryChargeLevel((Float) newValue);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS:
+			setLoadedItems((int[]) newValue);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS:
+			setErrors((int[]) newValue);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA:
+			setTheta((Float) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL:
+			setBatteryChargeLevel(BATTERY_CHARGE_LEVEL_EDEFAULT);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS:
+			setLoadedItems(LOADED_ITEMS_EDEFAULT);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS:
+			setErrors(ERRORS_EDEFAULT);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA:
+			setTheta(THETA_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL:
+			return batteryChargeLevel != BATTERY_CHARGE_LEVEL_EDEFAULT;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS:
+			return LOADED_ITEMS_EDEFAULT == null ? loadedItems != null : !LOADED_ITEMS_EDEFAULT.equals(loadedItems);
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS:
+			return ERRORS_EDEFAULT == null ? errors != null : !ERRORS_EDEFAULT.equals(errors);
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA:
+			return theta != THETA_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (batteryChargeLevel: ");
+		result.append(batteryChargeLevel);
+		result.append(", loadedItems: ");
+		result.append(loadedItems);
+		result.append(", errors: ");
+		result.append(errors);
+		result.append(", theta: ");
+		result.append(theta);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMExtractedAttributesImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMFactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMFactoryImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..e249f328fc4d57cd986a292660202d2518f94785
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMFactoryImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OSMFactoryImpl extends EFactoryImpl implements OSMFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OSMFactory init() {
+		try {
+			OSMFactory theOSMFactory = (OSMFactory) EPackage.Registry.INSTANCE.getEFactory(OSMPackage.eNS_URI);
+			if (theOSMFactory != null) {
+				return theOSMFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new OSMFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case OSMPackage.OSM_OBJECT:
+			return createOSMObject();
+		case OSMPackage.OSM_POSITION:
+			return createOSMPosition();
+		case OSMPackage.OSM_POINT:
+			return createOSMPoint();
+		case OSMPackage.OSM_ORIENTATION:
+			return createOSMOrientation();
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES:
+			return createOSMExtractedAttributes();
+		case OSMPackage.OSM_ZONE_DESCRIPTOR:
+			return createOSMZoneDescriptor();
+		case OSMPackage.OSM_MONITORING_TARGET:
+			return createOSMMonitoringTarget();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMObject createOSMObject() {
+		OSMObjectImpl osmObject = new OSMObjectImpl();
+		return osmObject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPosition createOSMPosition() {
+		OSMPositionImpl osmPosition = new OSMPositionImpl();
+		return osmPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPoint createOSMPoint() {
+		OSMPointImpl osmPoint = new OSMPointImpl();
+		return osmPoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMOrientation createOSMOrientation() {
+		OSMOrientationImpl osmOrientation = new OSMOrientationImpl();
+		return osmOrientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMExtractedAttributes createOSMExtractedAttributes() {
+		OSMExtractedAttributesImpl osmExtractedAttributes = new OSMExtractedAttributesImpl();
+		return osmExtractedAttributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMZoneDescriptor createOSMZoneDescriptor() {
+		OSMZoneDescriptorImpl osmZoneDescriptor = new OSMZoneDescriptorImpl();
+		return osmZoneDescriptor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMMonitoringTarget createOSMMonitoringTarget() {
+		OSMMonitoringTargetImpl osmMonitoringTarget = new OSMMonitoringTargetImpl();
+		return osmMonitoringTarget;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPackage getOSMPackage() {
+		return (OSMPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static OSMPackage getPackage() {
+		return OSMPackage.eINSTANCE;
+	}
+
+} //OSMFactoryImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMMonitoringTargetImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMMonitoringTargetImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..6b102aa3730d3412c2cc08628010546d101039a1
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMMonitoringTargetImpl.java
@@ -0,0 +1,221 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Monitoring Target</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl#getMonitoringTaskId <em>Monitoring Task Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl#getProtocol <em>Protocol</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMMonitoringTargetImpl extends MinimalEObjectImpl.Container implements OSMMonitoringTarget {
+	/**
+	 * The default value of the '{@link #getMonitoringTaskId() <em>Monitoring Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMonitoringTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String MONITORING_TASK_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getMonitoringTaskId() <em>Monitoring Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMonitoringTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String monitoringTaskId = MONITORING_TASK_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getProtocol() <em>Protocol</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProtocol()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROTOCOL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getProtocol() <em>Protocol</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProtocol()
+	 * @generated
+	 * @ordered
+	 */
+	protected String protocol = PROTOCOL_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMMonitoringTargetImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_MONITORING_TARGET;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getMonitoringTaskId() {
+		return monitoringTaskId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMonitoringTaskId(String newMonitoringTaskId) {
+		String oldMonitoringTaskId = monitoringTaskId;
+		monitoringTaskId = newMonitoringTaskId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID,
+					oldMonitoringTaskId, monitoringTaskId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getProtocol() {
+		return protocol;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProtocol(String newProtocol) {
+		String oldProtocol = protocol;
+		protocol = newProtocol;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_MONITORING_TARGET__PROTOCOL,
+					oldProtocol, protocol));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID:
+			return getMonitoringTaskId();
+		case OSMPackage.OSM_MONITORING_TARGET__PROTOCOL:
+			return getProtocol();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID:
+			setMonitoringTaskId((String) newValue);
+			return;
+		case OSMPackage.OSM_MONITORING_TARGET__PROTOCOL:
+			setProtocol((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID:
+			setMonitoringTaskId(MONITORING_TASK_ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_MONITORING_TARGET__PROTOCOL:
+			setProtocol(PROTOCOL_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID:
+			return MONITORING_TASK_ID_EDEFAULT == null ? monitoringTaskId != null
+					: !MONITORING_TASK_ID_EDEFAULT.equals(monitoringTaskId);
+		case OSMPackage.OSM_MONITORING_TARGET__PROTOCOL:
+			return PROTOCOL_EDEFAULT == null ? protocol != null : !PROTOCOL_EDEFAULT.equals(protocol);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (monitoringTaskId: ");
+		result.append(monitoringTaskId);
+		result.append(", protocol: ");
+		result.append(protocol);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMMonitoringTargetImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMObjectImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMObjectImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..25d6ccda80dddc67ef77fd9c38925c7b8695b648
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMObjectImpl.java
@@ -0,0 +1,621 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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 org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getId <em>Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getSensorId <em>Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getSensorType <em>Sensor Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getOsmposition <em>Osmposition</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getOsmorientation <em>Osmorientation</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getOsmextractedattributes <em>Osmextractedattributes</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getLastPosUpdate <em>Last Pos Update</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getOsmzonedescriptor <em>Osmzonedescriptor</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMObject {
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorId = SENSOR_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String type = TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorType = SENSOR_TYPE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getOsmposition() <em>Osmposition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmposition()
+	 * @generated
+	 * @ordered
+	 */
+	protected OSMPosition osmposition;
+
+	/**
+	 * The cached value of the '{@link #getOsmorientation() <em>Osmorientation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmorientation()
+	 * @generated
+	 * @ordered
+	 */
+	protected OSMOrientation osmorientation;
+
+	/**
+	 * The cached value of the '{@link #getOsmextractedattributes() <em>Osmextractedattributes</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmextractedattributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected OSMExtractedAttributes osmextractedattributes;
+
+	/**
+	 * The default value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LAST_POS_UPDATE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected String lastPosUpdate = LAST_POS_UPDATE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getOsmzonedescriptor() <em>Osmzonedescriptor</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmzonedescriptor()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<OSMZoneDescriptor> osmzonedescriptor;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMObjectImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_OBJECT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorId() {
+		return sensorId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorId(String newSensorId) {
+		String oldSensorId = sensorId;
+		sensorId = newSensorId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__SENSOR_ID, oldSensorId,
+					sensorId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(String newType) {
+		String oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorType() {
+		return sensorType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorType(String newSensorType) {
+		String oldSensorType = sensorType;
+		sensorType = newSensorType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__SENSOR_TYPE, oldSensorType,
+					sensorType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPosition getOsmposition() {
+		if (osmposition != null && osmposition.eIsProxy()) {
+			InternalEObject oldOsmposition = (InternalEObject) osmposition;
+			osmposition = (OSMPosition) eResolveProxy(oldOsmposition);
+			if (osmposition != oldOsmposition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OSMPackage.OSM_OBJECT__OSMPOSITION,
+							oldOsmposition, osmposition));
+			}
+		}
+		return osmposition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPosition basicGetOsmposition() {
+		return osmposition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOsmposition(OSMPosition newOsmposition) {
+		OSMPosition oldOsmposition = osmposition;
+		osmposition = newOsmposition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__OSMPOSITION, oldOsmposition,
+					osmposition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMOrientation getOsmorientation() {
+		if (osmorientation != null && osmorientation.eIsProxy()) {
+			InternalEObject oldOsmorientation = (InternalEObject) osmorientation;
+			osmorientation = (OSMOrientation) eResolveProxy(oldOsmorientation);
+			if (osmorientation != oldOsmorientation) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OSMPackage.OSM_OBJECT__OSMORIENTATION,
+							oldOsmorientation, osmorientation));
+			}
+		}
+		return osmorientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMOrientation basicGetOsmorientation() {
+		return osmorientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOsmorientation(OSMOrientation newOsmorientation) {
+		OSMOrientation oldOsmorientation = osmorientation;
+		osmorientation = newOsmorientation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__OSMORIENTATION,
+					oldOsmorientation, osmorientation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMExtractedAttributes getOsmextractedattributes() {
+		if (osmextractedattributes != null && osmextractedattributes.eIsProxy()) {
+			InternalEObject oldOsmextractedattributes = (InternalEObject) osmextractedattributes;
+			osmextractedattributes = (OSMExtractedAttributes) eResolveProxy(oldOsmextractedattributes);
+			if (osmextractedattributes != oldOsmextractedattributes) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES, oldOsmextractedattributes,
+							osmextractedattributes));
+			}
+		}
+		return osmextractedattributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMExtractedAttributes basicGetOsmextractedattributes() {
+		return osmextractedattributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOsmextractedattributes(OSMExtractedAttributes newOsmextractedattributes) {
+		OSMExtractedAttributes oldOsmextractedattributes = osmextractedattributes;
+		osmextractedattributes = newOsmextractedattributes;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES,
+					oldOsmextractedattributes, osmextractedattributes));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLastPosUpdate() {
+		return lastPosUpdate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLastPosUpdate(String newLastPosUpdate) {
+		String oldLastPosUpdate = lastPosUpdate;
+		lastPosUpdate = newLastPosUpdate;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__LAST_POS_UPDATE,
+					oldLastPosUpdate, lastPosUpdate));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<OSMZoneDescriptor> getOsmzonedescriptor() {
+		if (osmzonedescriptor == null) {
+			osmzonedescriptor = new EObjectResolvingEList<OSMZoneDescriptor>(OSMZoneDescriptor.class, this,
+					OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR);
+		}
+		return osmzonedescriptor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_OBJECT__ID:
+			return getId();
+		case OSMPackage.OSM_OBJECT__SENSOR_ID:
+			return getSensorId();
+		case OSMPackage.OSM_OBJECT__TYPE:
+			return getType();
+		case OSMPackage.OSM_OBJECT__SENSOR_TYPE:
+			return getSensorType();
+		case OSMPackage.OSM_OBJECT__OSMPOSITION:
+			if (resolve)
+				return getOsmposition();
+			return basicGetOsmposition();
+		case OSMPackage.OSM_OBJECT__OSMORIENTATION:
+			if (resolve)
+				return getOsmorientation();
+			return basicGetOsmorientation();
+		case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES:
+			if (resolve)
+				return getOsmextractedattributes();
+			return basicGetOsmextractedattributes();
+		case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE:
+			return getLastPosUpdate();
+		case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR:
+			return getOsmzonedescriptor();
+		}
+		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 OSMPackage.OSM_OBJECT__ID:
+			setId((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__SENSOR_ID:
+			setSensorId((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__TYPE:
+			setType((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__SENSOR_TYPE:
+			setSensorType((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMPOSITION:
+			setOsmposition((OSMPosition) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMORIENTATION:
+			setOsmorientation((OSMOrientation) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES:
+			setOsmextractedattributes((OSMExtractedAttributes) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE:
+			setLastPosUpdate((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR:
+			getOsmzonedescriptor().clear();
+			getOsmzonedescriptor().addAll((Collection<? extends OSMZoneDescriptor>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_OBJECT__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__SENSOR_ID:
+			setSensorId(SENSOR_ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__TYPE:
+			setType(TYPE_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__SENSOR_TYPE:
+			setSensorType(SENSOR_TYPE_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMPOSITION:
+			setOsmposition((OSMPosition) null);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMORIENTATION:
+			setOsmorientation((OSMOrientation) null);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES:
+			setOsmextractedattributes((OSMExtractedAttributes) null);
+			return;
+		case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE:
+			setLastPosUpdate(LAST_POS_UPDATE_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR:
+			getOsmzonedescriptor().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_OBJECT__ID:
+			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+		case OSMPackage.OSM_OBJECT__SENSOR_ID:
+			return SENSOR_ID_EDEFAULT == null ? sensorId != null : !SENSOR_ID_EDEFAULT.equals(sensorId);
+		case OSMPackage.OSM_OBJECT__TYPE:
+			return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+		case OSMPackage.OSM_OBJECT__SENSOR_TYPE:
+			return SENSOR_TYPE_EDEFAULT == null ? sensorType != null : !SENSOR_TYPE_EDEFAULT.equals(sensorType);
+		case OSMPackage.OSM_OBJECT__OSMPOSITION:
+			return osmposition != null;
+		case OSMPackage.OSM_OBJECT__OSMORIENTATION:
+			return osmorientation != null;
+		case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES:
+			return osmextractedattributes != null;
+		case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE:
+			return LAST_POS_UPDATE_EDEFAULT == null ? lastPosUpdate != null
+					: !LAST_POS_UPDATE_EDEFAULT.equals(lastPosUpdate);
+		case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR:
+			return osmzonedescriptor != null && !osmzonedescriptor.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (id: ");
+		result.append(id);
+		result.append(", sensorId: ");
+		result.append(sensorId);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", sensorType: ");
+		result.append(sensorType);
+		result.append(", lastPosUpdate: ");
+		result.append(lastPosUpdate);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMObjectImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMOrientationImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMOrientationImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..13dfd0b54c2d30371322b4dc91bd61466eafe136
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMOrientationImpl.java
@@ -0,0 +1,326 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Orientation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl#getZ <em>Z</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl#getW <em>W</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMOrientationImpl extends MinimalEObjectImpl.Container implements OSMOrientation {
+	/**
+	 * The default value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float X_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected float x = X_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Y_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected float y = Y_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Z_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected float z = Z_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getW() <em>W</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getW()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float W_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getW() <em>W</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getW()
+	 * @generated
+	 * @ordered
+	 */
+	protected float w = W_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMOrientationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_ORIENTATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getX() {
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setX(float newX) {
+		float oldX = x;
+		x = newX;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ORIENTATION__X, oldX, x));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getY() {
+		return y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setY(float newY) {
+		float oldY = y;
+		y = newY;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ORIENTATION__Y, oldY, y));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getZ() {
+		return z;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setZ(float newZ) {
+		float oldZ = z;
+		z = newZ;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ORIENTATION__Z, oldZ, z));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getW() {
+		return w;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setW(float newW) {
+		float oldW = w;
+		w = newW;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ORIENTATION__W, oldW, w));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_ORIENTATION__X:
+			return getX();
+		case OSMPackage.OSM_ORIENTATION__Y:
+			return getY();
+		case OSMPackage.OSM_ORIENTATION__Z:
+			return getZ();
+		case OSMPackage.OSM_ORIENTATION__W:
+			return getW();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_ORIENTATION__X:
+			setX((Float) newValue);
+			return;
+		case OSMPackage.OSM_ORIENTATION__Y:
+			setY((Float) newValue);
+			return;
+		case OSMPackage.OSM_ORIENTATION__Z:
+			setZ((Float) newValue);
+			return;
+		case OSMPackage.OSM_ORIENTATION__W:
+			setW((Float) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_ORIENTATION__X:
+			setX(X_EDEFAULT);
+			return;
+		case OSMPackage.OSM_ORIENTATION__Y:
+			setY(Y_EDEFAULT);
+			return;
+		case OSMPackage.OSM_ORIENTATION__Z:
+			setZ(Z_EDEFAULT);
+			return;
+		case OSMPackage.OSM_ORIENTATION__W:
+			setW(W_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_ORIENTATION__X:
+			return x != X_EDEFAULT;
+		case OSMPackage.OSM_ORIENTATION__Y:
+			return y != Y_EDEFAULT;
+		case OSMPackage.OSM_ORIENTATION__Z:
+			return z != Z_EDEFAULT;
+		case OSMPackage.OSM_ORIENTATION__W:
+			return w != W_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (x: ");
+		result.append(x);
+		result.append(", y: ");
+		result.append(y);
+		result.append(", z: ");
+		result.append(z);
+		result.append(", w: ");
+		result.append(w);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMOrientationImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPackageImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..6ff26b2c30bb1271002fa15fa35184aa7dcccba6
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPackageImpl.java
@@ -0,0 +1,697 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OSMPackageImpl extends EPackageImpl implements OSMPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmObjectEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmPositionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmPointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmOrientationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmExtractedAttributesEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmZoneDescriptorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmMonitoringTargetEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private OSMPackageImpl() {
+		super(eNS_URI, OSMFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link OSMPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static OSMPackage init() {
+		if (isInited)
+			return (OSMPackage) EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredOSMPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		OSMPackageImpl theOSMPackage = registeredOSMPackage instanceof OSMPackageImpl
+				? (OSMPackageImpl) registeredOSMPackage
+				: new OSMPackageImpl();
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPos_DatamodelPackage.eNS_URI);
+		IPos_DatamodelPackageImpl theIPos_DatamodelPackage = (IPos_DatamodelPackageImpl) (registeredPackage instanceof IPos_DatamodelPackageImpl
+				? registeredPackage
+				: IPos_DatamodelPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OFBizPackage.eNS_URI);
+		OFBizPackageImpl theOFBizPackage = (OFBizPackageImpl) (registeredPackage instanceof OFBizPackageImpl
+				? registeredPackage
+				: OFBizPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPosDevKitPackage.eNS_URI);
+		IPosDevKitPackageImpl theIPosDevKitPackage = (IPosDevKitPackageImpl) (registeredPackage instanceof IPosDevKitPackageImpl
+				? registeredPackage
+				: IPosDevKitPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI);
+		ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl
+				? registeredPackage
+				: ToozPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI);
+		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
+				? registeredPackage
+				: VDA5050Package.eINSTANCE);
+
+		// Create package meta-data objects
+		theOSMPackage.createPackageContents();
+		theIPos_DatamodelPackage.createPackageContents();
+		theOFBizPackage.createPackageContents();
+		theIPosDevKitPackage.createPackageContents();
+		theToozPackage.createPackageContents();
+		theVDA5050Package.createPackageContents();
+
+		// Initialize created meta-data
+		theOSMPackage.initializePackageContents();
+		theIPos_DatamodelPackage.initializePackageContents();
+		theOFBizPackage.initializePackageContents();
+		theIPosDevKitPackage.initializePackageContents();
+		theToozPackage.initializePackageContents();
+		theVDA5050Package.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theOSMPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(OSMPackage.eNS_URI, theOSMPackage);
+		return theOSMPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMObject() {
+		return osmObjectEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_Id() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_SensorId() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_Type() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_SensorType() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMObject_Osmposition() {
+		return (EReference) osmObjectEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMObject_Osmorientation() {
+		return (EReference) osmObjectEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMObject_Osmextractedattributes() {
+		return (EReference) osmObjectEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_LastPosUpdate() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMObject_Osmzonedescriptor() {
+		return (EReference) osmObjectEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMPosition() {
+		return osmPositionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPosition_RefSystemId() {
+		return (EAttribute) osmPositionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPosition_Accuracy() {
+		return (EAttribute) osmPositionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMPosition_Osmpoint() {
+		return (EReference) osmPositionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMPoint() {
+		return osmPointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPoint_X() {
+		return (EAttribute) osmPointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPoint_Y() {
+		return (EAttribute) osmPointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPoint_Z() {
+		return (EAttribute) osmPointEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMOrientation() {
+		return osmOrientationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMOrientation_X() {
+		return (EAttribute) osmOrientationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMOrientation_Y() {
+		return (EAttribute) osmOrientationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMOrientation_Z() {
+		return (EAttribute) osmOrientationEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMOrientation_W() {
+		return (EAttribute) osmOrientationEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMExtractedAttributes() {
+		return osmExtractedAttributesEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMExtractedAttributes_BatteryChargeLevel() {
+		return (EAttribute) osmExtractedAttributesEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMExtractedAttributes_LoadedItems() {
+		return (EAttribute) osmExtractedAttributesEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMExtractedAttributes_Errors() {
+		return (EAttribute) osmExtractedAttributesEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMExtractedAttributes_Theta() {
+		return (EAttribute) osmExtractedAttributesEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMZoneDescriptor() {
+		return osmZoneDescriptorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMZoneDescriptor_ZoneId() {
+		return (EAttribute) osmZoneDescriptorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMZoneDescriptor_NotificationType() {
+		return (EAttribute) osmZoneDescriptorEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMMonitoringTarget() {
+		return osmMonitoringTargetEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMMonitoringTarget_MonitoringTaskId() {
+		return (EAttribute) osmMonitoringTargetEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMMonitoringTarget_Protocol() {
+		return (EAttribute) osmMonitoringTargetEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMFactory getOSMFactory() {
+		return (OSMFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		osmObjectEClass = createEClass(OSM_OBJECT);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__ID);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__SENSOR_ID);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__TYPE);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__SENSOR_TYPE);
+		createEReference(osmObjectEClass, OSM_OBJECT__OSMPOSITION);
+		createEReference(osmObjectEClass, OSM_OBJECT__OSMORIENTATION);
+		createEReference(osmObjectEClass, OSM_OBJECT__OSMEXTRACTEDATTRIBUTES);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__LAST_POS_UPDATE);
+		createEReference(osmObjectEClass, OSM_OBJECT__OSMZONEDESCRIPTOR);
+
+		osmPositionEClass = createEClass(OSM_POSITION);
+		createEAttribute(osmPositionEClass, OSM_POSITION__REF_SYSTEM_ID);
+		createEAttribute(osmPositionEClass, OSM_POSITION__ACCURACY);
+		createEReference(osmPositionEClass, OSM_POSITION__OSMPOINT);
+
+		osmPointEClass = createEClass(OSM_POINT);
+		createEAttribute(osmPointEClass, OSM_POINT__X);
+		createEAttribute(osmPointEClass, OSM_POINT__Y);
+		createEAttribute(osmPointEClass, OSM_POINT__Z);
+
+		osmOrientationEClass = createEClass(OSM_ORIENTATION);
+		createEAttribute(osmOrientationEClass, OSM_ORIENTATION__X);
+		createEAttribute(osmOrientationEClass, OSM_ORIENTATION__Y);
+		createEAttribute(osmOrientationEClass, OSM_ORIENTATION__Z);
+		createEAttribute(osmOrientationEClass, OSM_ORIENTATION__W);
+
+		osmExtractedAttributesEClass = createEClass(OSM_EXTRACTED_ATTRIBUTES);
+		createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL);
+		createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS);
+		createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__ERRORS);
+		createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__THETA);
+
+		osmZoneDescriptorEClass = createEClass(OSM_ZONE_DESCRIPTOR);
+		createEAttribute(osmZoneDescriptorEClass, OSM_ZONE_DESCRIPTOR__ZONE_ID);
+		createEAttribute(osmZoneDescriptorEClass, OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE);
+
+		osmMonitoringTargetEClass = createEClass(OSM_MONITORING_TARGET);
+		createEAttribute(osmMonitoringTargetEClass, OSM_MONITORING_TARGET__MONITORING_TASK_ID);
+		createEAttribute(osmMonitoringTargetEClass, OSM_MONITORING_TARGET__PROTOCOL);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		IPos_DatamodelPackage theIPos_DatamodelPackage = (IPos_DatamodelPackage) EPackage.Registry.INSTANCE
+				.getEPackage(IPos_DatamodelPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(osmObjectEClass, OSMObject.class, "OSMObject", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMObject_Id(), ecorePackage.getEString(), "id", null, 0, 1, OSMObject.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMObject_SensorId(), ecorePackage.getEString(), "sensorId", null, 0, 1, OSMObject.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMObject_Type(), ecorePackage.getEString(), "type", null, 0, 1, OSMObject.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMObject_SensorType(), ecorePackage.getEString(), "sensorType", null, 0, 1, OSMObject.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getOSMObject_Osmposition(), this.getOSMPosition(), null, "osmposition", null, 0, 1,
+				OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getOSMObject_Osmorientation(), this.getOSMOrientation(), null, "osmorientation", null, 0, 1,
+				OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getOSMObject_Osmextractedattributes(), this.getOSMExtractedAttributes(), null,
+				"osmextractedattributes", null, 0, 1, OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMObject_LastPosUpdate(), ecorePackage.getEString(), "lastPosUpdate", null, 0, 1,
+				OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEReference(getOSMObject_Osmzonedescriptor(), this.getOSMZoneDescriptor(), null, "osmzonedescriptor", null,
+				0, -1, OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmPositionEClass, OSMPosition.class, "OSMPosition", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMPosition_RefSystemId(), ecorePackage.getEString(), "refSystemId", null, 0, 1,
+				OSMPosition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMPosition_Accuracy(), ecorePackage.getEFloat(), "accuracy", null, 0, 1, OSMPosition.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getOSMPosition_Osmpoint(), this.getOSMPoint(), null, "osmpoint", null, 0, 1, OSMPosition.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmPointEClass, OSMPoint.class, "OSMPoint", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMPoint_X(), ecorePackage.getEFloat(), "x", null, 0, 1, OSMPoint.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMPoint_Y(), ecorePackage.getEFloat(), "y", null, 0, 1, OSMPoint.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMPoint_Z(), ecorePackage.getEFloat(), "z", null, 0, 1, OSMPoint.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmOrientationEClass, OSMOrientation.class, "OSMOrientation", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMOrientation_X(), ecorePackage.getEFloat(), "x", null, 0, 1, OSMOrientation.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMOrientation_Y(), ecorePackage.getEFloat(), "y", null, 0, 1, OSMOrientation.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMOrientation_Z(), ecorePackage.getEFloat(), "z", null, 0, 1, OSMOrientation.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMOrientation_W(), ecorePackage.getEFloat(), "w", null, 0, 1, OSMOrientation.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmExtractedAttributesEClass, OSMExtractedAttributes.class, "OSMExtractedAttributes", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMExtractedAttributes_BatteryChargeLevel(), ecorePackage.getEFloat(), "batteryChargeLevel",
+				null, 0, 1, OSMExtractedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+				!IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMExtractedAttributes_LoadedItems(), theIPos_DatamodelPackage.getIntArray(), "loadedItems",
+				null, 0, 1, OSMExtractedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+				!IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMExtractedAttributes_Errors(), theIPos_DatamodelPackage.getIntArray(), "errors", null, 0, 1,
+				OSMExtractedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMExtractedAttributes_Theta(), ecorePackage.getEFloat(), "theta", null, 0, 1,
+				OSMExtractedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmZoneDescriptorEClass, OSMZoneDescriptor.class, "OSMZoneDescriptor", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMZoneDescriptor_ZoneId(), ecorePackage.getEString(), "zoneId", null, 0, 1,
+				OSMZoneDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMZoneDescriptor_NotificationType(), ecorePackage.getEString(), "notificationType", null, 0,
+				1, OSMZoneDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmMonitoringTargetEClass, OSMMonitoringTarget.class, "OSMMonitoringTarget", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMMonitoringTarget_MonitoringTaskId(), ecorePackage.getEString(), "monitoringTaskId", null,
+				0, 1, OSMMonitoringTarget.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMMonitoringTarget_Protocol(), ecorePackage.getEString(), "protocol", null, 0, 1,
+				OSMMonitoringTarget.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+	}
+
+} //OSMPackageImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPointImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPointImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..95333bc3182b0c5366fed90ca5654400b6690813
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPointImpl.java
@@ -0,0 +1,272 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Point</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl#getZ <em>Z</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMPointImpl extends MinimalEObjectImpl.Container implements OSMPoint {
+	/**
+	 * The default value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float X_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected float x = X_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Y_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected float y = Y_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Z_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected float z = Z_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMPointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_POINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getX() {
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setX(float newX) {
+		float oldX = x;
+		x = newX;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POINT__X, oldX, x));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getY() {
+		return y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setY(float newY) {
+		float oldY = y;
+		y = newY;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POINT__Y, oldY, y));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getZ() {
+		return z;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setZ(float newZ) {
+		float oldZ = z;
+		z = newZ;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POINT__Z, oldZ, z));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_POINT__X:
+			return getX();
+		case OSMPackage.OSM_POINT__Y:
+			return getY();
+		case OSMPackage.OSM_POINT__Z:
+			return getZ();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_POINT__X:
+			setX((Float) newValue);
+			return;
+		case OSMPackage.OSM_POINT__Y:
+			setY((Float) newValue);
+			return;
+		case OSMPackage.OSM_POINT__Z:
+			setZ((Float) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_POINT__X:
+			setX(X_EDEFAULT);
+			return;
+		case OSMPackage.OSM_POINT__Y:
+			setY(Y_EDEFAULT);
+			return;
+		case OSMPackage.OSM_POINT__Z:
+			setZ(Z_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_POINT__X:
+			return x != X_EDEFAULT;
+		case OSMPackage.OSM_POINT__Y:
+			return y != Y_EDEFAULT;
+		case OSMPackage.OSM_POINT__Z:
+			return z != Z_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (x: ");
+		result.append(x);
+		result.append(", y: ");
+		result.append(y);
+		result.append(", z: ");
+		result.append(z);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMPointImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPositionImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPositionImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..5521ed37093ec4819d8766ec4974813305d487a9
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPositionImpl.java
@@ -0,0 +1,285 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Position</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl#getRefSystemId <em>Ref System Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl#getAccuracy <em>Accuracy</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl#getOsmpoint <em>Osmpoint</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMPositionImpl extends MinimalEObjectImpl.Container implements OSMPosition {
+	/**
+	 * The default value of the '{@link #getRefSystemId() <em>Ref System Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefSystemId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REF_SYSTEM_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRefSystemId() <em>Ref System Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefSystemId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String refSystemId = REF_SYSTEM_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAccuracy() <em>Accuracy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAccuracy()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float ACCURACY_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getAccuracy() <em>Accuracy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAccuracy()
+	 * @generated
+	 * @ordered
+	 */
+	protected float accuracy = ACCURACY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getOsmpoint() <em>Osmpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected OSMPoint osmpoint;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMPositionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_POSITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRefSystemId() {
+		return refSystemId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRefSystemId(String newRefSystemId) {
+		String oldRefSystemId = refSystemId;
+		refSystemId = newRefSystemId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POSITION__REF_SYSTEM_ID,
+					oldRefSystemId, refSystemId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getAccuracy() {
+		return accuracy;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAccuracy(float newAccuracy) {
+		float oldAccuracy = accuracy;
+		accuracy = newAccuracy;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POSITION__ACCURACY, oldAccuracy,
+					accuracy));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPoint getOsmpoint() {
+		if (osmpoint != null && osmpoint.eIsProxy()) {
+			InternalEObject oldOsmpoint = (InternalEObject) osmpoint;
+			osmpoint = (OSMPoint) eResolveProxy(oldOsmpoint);
+			if (osmpoint != oldOsmpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OSMPackage.OSM_POSITION__OSMPOINT,
+							oldOsmpoint, osmpoint));
+			}
+		}
+		return osmpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPoint basicGetOsmpoint() {
+		return osmpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOsmpoint(OSMPoint newOsmpoint) {
+		OSMPoint oldOsmpoint = osmpoint;
+		osmpoint = newOsmpoint;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POSITION__OSMPOINT, oldOsmpoint,
+					osmpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_POSITION__REF_SYSTEM_ID:
+			return getRefSystemId();
+		case OSMPackage.OSM_POSITION__ACCURACY:
+			return getAccuracy();
+		case OSMPackage.OSM_POSITION__OSMPOINT:
+			if (resolve)
+				return getOsmpoint();
+			return basicGetOsmpoint();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_POSITION__REF_SYSTEM_ID:
+			setRefSystemId((String) newValue);
+			return;
+		case OSMPackage.OSM_POSITION__ACCURACY:
+			setAccuracy((Float) newValue);
+			return;
+		case OSMPackage.OSM_POSITION__OSMPOINT:
+			setOsmpoint((OSMPoint) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_POSITION__REF_SYSTEM_ID:
+			setRefSystemId(REF_SYSTEM_ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_POSITION__ACCURACY:
+			setAccuracy(ACCURACY_EDEFAULT);
+			return;
+		case OSMPackage.OSM_POSITION__OSMPOINT:
+			setOsmpoint((OSMPoint) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_POSITION__REF_SYSTEM_ID:
+			return REF_SYSTEM_ID_EDEFAULT == null ? refSystemId != null : !REF_SYSTEM_ID_EDEFAULT.equals(refSystemId);
+		case OSMPackage.OSM_POSITION__ACCURACY:
+			return accuracy != ACCURACY_EDEFAULT;
+		case OSMPackage.OSM_POSITION__OSMPOINT:
+			return osmpoint != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (refSystemId: ");
+		result.append(refSystemId);
+		result.append(", accuracy: ");
+		result.append(accuracy);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMPositionImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMZoneDescriptorImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMZoneDescriptorImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..dd272e6ab66bd9d0f064eb2123f31a8886939ac2
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMZoneDescriptorImpl.java
@@ -0,0 +1,221 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Zone Descriptor</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl#getZoneId <em>Zone Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl#getNotificationType <em>Notification Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMZoneDescriptorImpl extends MinimalEObjectImpl.Container implements OSMZoneDescriptor {
+	/**
+	 * The default value of the '{@link #getZoneId() <em>Zone Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZoneId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ZONE_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getZoneId() <em>Zone Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZoneId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String zoneId = ZONE_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNotificationType() <em>Notification Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNotificationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NOTIFICATION_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNotificationType() <em>Notification Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNotificationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String notificationType = NOTIFICATION_TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMZoneDescriptorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_ZONE_DESCRIPTOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getZoneId() {
+		return zoneId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setZoneId(String newZoneId) {
+		String oldZoneId = zoneId;
+		zoneId = newZoneId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID, oldZoneId,
+					zoneId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNotificationType() {
+		return notificationType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNotificationType(String newNotificationType) {
+		String oldNotificationType = notificationType;
+		notificationType = newNotificationType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE,
+					oldNotificationType, notificationType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID:
+			return getZoneId();
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			return getNotificationType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID:
+			setZoneId((String) newValue);
+			return;
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			setNotificationType((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID:
+			setZoneId(ZONE_ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			setNotificationType(NOTIFICATION_TYPE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID:
+			return ZONE_ID_EDEFAULT == null ? zoneId != null : !ZONE_ID_EDEFAULT.equals(zoneId);
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			return NOTIFICATION_TYPE_EDEFAULT == null ? notificationType != null
+					: !NOTIFICATION_TYPE_EDEFAULT.equals(notificationType);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (zoneId: ");
+		result.append(zoneId);
+		result.append(", notificationType: ");
+		result.append(notificationType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMZoneDescriptorImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMAdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMAdapterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..53bb46ee8029476e87ba47f9b334045c43a27a70
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMAdapterFactory.java
@@ -0,0 +1,233 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage
+ * @generated
+ */
+public class OSMAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static OSMPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = OSMPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMSwitch<Adapter> modelSwitch = new OSMSwitch<Adapter>() {
+		@Override
+		public Adapter caseOSMObject(OSMObject object) {
+			return createOSMObjectAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMPosition(OSMPosition object) {
+			return createOSMPositionAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMPoint(OSMPoint object) {
+			return createOSMPointAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMOrientation(OSMOrientation object) {
+			return createOSMOrientationAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMExtractedAttributes(OSMExtractedAttributes object) {
+			return createOSMExtractedAttributesAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMZoneDescriptor(OSMZoneDescriptor object) {
+			return createOSMZoneDescriptorAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMMonitoringTarget(OSMMonitoringTarget object) {
+			return createOSMMonitoringTargetAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject <em>Object</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 ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject
+	 * @generated
+	 */
+	public Adapter createOSMObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition <em>Position</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 ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition
+	 * @generated
+	 */
+	public Adapter createOSMPositionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint <em>Point</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 ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint
+	 * @generated
+	 */
+	public Adapter createOSMPointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation <em>Orientation</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 ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation
+	 * @generated
+	 */
+	public Adapter createOSMOrientationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes <em>Extracted Attributes</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 ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes
+	 * @generated
+	 */
+	public Adapter createOSMExtractedAttributesAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor <em>Zone Descriptor</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 ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor
+	 * @generated
+	 */
+	public Adapter createOSMZoneDescriptorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget <em>Monitoring Target</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 ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget
+	 * @generated
+	 */
+	public Adapter createOSMMonitoringTargetAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //OSMAdapterFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMSwitch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMSwitch.java
new file mode 100644
index 0000000000000000000000000000000000000000..e58ce5eee2f654ea7e18750a54d986ea53313047
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMSwitch.java
@@ -0,0 +1,244 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage
+ * @generated
+ */
+public class OSMSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static OSMPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMSwitch() {
+		if (modelPackage == null) {
+			modelPackage = OSMPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case OSMPackage.OSM_OBJECT: {
+			OSMObject osmObject = (OSMObject) theEObject;
+			T result = caseOSMObject(osmObject);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_POSITION: {
+			OSMPosition osmPosition = (OSMPosition) theEObject;
+			T result = caseOSMPosition(osmPosition);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_POINT: {
+			OSMPoint osmPoint = (OSMPoint) theEObject;
+			T result = caseOSMPoint(osmPoint);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_ORIENTATION: {
+			OSMOrientation osmOrientation = (OSMOrientation) theEObject;
+			T result = caseOSMOrientation(osmOrientation);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES: {
+			OSMExtractedAttributes osmExtractedAttributes = (OSMExtractedAttributes) theEObject;
+			T result = caseOSMExtractedAttributes(osmExtractedAttributes);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_ZONE_DESCRIPTOR: {
+			OSMZoneDescriptor osmZoneDescriptor = (OSMZoneDescriptor) theEObject;
+			T result = caseOSMZoneDescriptor(osmZoneDescriptor);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_MONITORING_TARGET: {
+			OSMMonitoringTarget osmMonitoringTarget = (OSMMonitoringTarget) theEObject;
+			T result = caseOSMMonitoringTarget(osmMonitoringTarget);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Object</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>Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMObject(OSMObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Position</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>Position</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMPosition(OSMPosition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Point</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>Point</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMPoint(OSMPoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Orientation</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>Orientation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMOrientation(OSMOrientation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Extracted Attributes</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>Extracted Attributes</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMExtractedAttributes(OSMExtractedAttributes object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Zone Descriptor</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>Zone Descriptor</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMZoneDescriptor(OSMZoneDescriptor object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Monitoring Target</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>Monitoring Target</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMMonitoringTarget(OSMMonitoringTarget object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //OSMSwitch
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OtherBeacon.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OtherBeacon.java
index 74d0a12f7b2dee85c162262a541fdc380417d0ce..988f7d6f294c409ae56726a19f7f6558c810fdee 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OtherBeacon.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OtherBeacon.java
@@ -4,8 +4,6 @@ package ipos.project.DataModellntegration.iPos_Datamodel;
 
 import java.util.Map;
 
-import org.eclipse.emf.ecore.EObject;
-
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Other Beacon</b></em>'.
@@ -33,7 +31,7 @@ public interface OtherBeacon extends Beacon {
 	 * @model transient="true"
 	 * @generated
 	 */
-	Map<String, EObject> getData();
+	Map<String, Object> getData();
 
 	/**
 	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OtherBeacon#getData <em>Data</em>}' attribute.
@@ -43,6 +41,6 @@ public interface OtherBeacon extends Beacon {
 	 * @see #getData()
 	 * @generated
 	 */
-	void setData(Map<String, EObject> value);
+	void setData(Map<String, Object> value);
 
 } // OtherBeacon
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OtherProx.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OtherProx.java
index b9c2f3d197768647087d6571e4de6abec2314c51..9ce0bf7e2a8508584f380d027f533a49f7554c1b 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OtherProx.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OtherProx.java
@@ -4,8 +4,6 @@ package ipos.project.DataModellntegration.iPos_Datamodel;
 
 import java.util.Map;
 
-import org.eclipse.emf.ecore.EObject;
-
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Other Prox</b></em>'.
@@ -33,7 +31,7 @@ public interface OtherProx extends Proximity {
 	 * @model transient="true"
 	 * @generated
 	 */
-	Map<String, EObject> getData();
+	Map<String, Object> getData();
 
 	/**
 	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OtherProx#getData <em>Data</em>}' attribute.
@@ -43,6 +41,6 @@ public interface OtherProx extends Proximity {
 	 * @see #getData()
 	 * @generated
 	 */
-	void setData(Map<String, EObject> value);
+	void setData(Map<String, Object> value);
 
 } // OtherProx
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/POI.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/POI.java
new file mode 100644
index 0000000000000000000000000000000000000000..25040df3cdf2ed316645bb74918ef3bac4e2925b
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/POI.java
@@ -0,0 +1,117 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>POI</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getPlacing <em>Placing</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getDescription <em>Description</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getData <em>Data</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getId <em>Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPOI()
+ * @model
+ * @generated
+ */
+public interface POI extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Placing</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Placing</em>' reference.
+	 * @see #setPlacing(Placing)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPOI_Placing()
+	 * @model required="true"
+	 * @generated
+	 */
+	Placing getPlacing();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getPlacing <em>Placing</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Placing</em>' reference.
+	 * @see #getPlacing()
+	 * @generated
+	 */
+	void setPlacing(Placing value);
+
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPOI_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data</em>' attribute.
+	 * @see #setData(Map)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPOI_Data()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Map<String, String> getData();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getData <em>Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Data</em>' attribute.
+	 * @see #getData()
+	 * @generated
+	 */
+	void setData(Map<String, String> value);
+
+	/**
+	 * Returns the value of the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Id</em>' attribute.
+	 * @see #setId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPOI_Id()
+	 * @model
+	 * @generated
+	 */
+	String getId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI#getId <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Id</em>' attribute.
+	 * @see #getId()
+	 * @generated
+	 */
+	void setId(String value);
+
+} // POI
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Placing.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Placing.java
index 81fb9f5faa186259ca7bb5139f5dc4d92363ad48..18eedf86ad18897d63c188974dde5513cd6edbd5 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Placing.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Placing.java
@@ -13,7 +13,6 @@ import org.eclipse.emf.ecore.EObject;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Placing#getLObject <em>LObject</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Placing#getPosition <em>Position</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Placing#getOrientation <em>Orientation</em>}</li>
  * </ul>
@@ -23,30 +22,6 @@ import org.eclipse.emf.ecore.EObject;
  * @generated
  */
 public interface Placing extends EObject {
-	/**
-	 * Returns the value of the '<em><b>LObject</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing <em>Current Placing</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>LObject</em>' reference.
-	 * @see #setLObject(LocalizableObject)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPlacing_LObject()
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject#getCurrentPlacing
-	 * @model opposite="currentPlacing" required="true"
-	 * @generated
-	 */
-	LocalizableObject getLObject();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Placing#getLObject <em>LObject</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>LObject</em>' reference.
-	 * @see #getLObject()
-	 * @generated
-	 */
-	void setLObject(LocalizableObject value);
-
 	/**
 	 * Returns the value of the '<em><b>Position</b></em>' reference.
 	 * <!-- begin-user-doc -->
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Position.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Position.java
index 0ed379361752903e5ae08fedcb57daa967c5acd2..b784864d369c6904614178da1b4969bca389654d 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Position.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Position.java
@@ -14,6 +14,8 @@ import org.eclipse.emf.ecore.EObject;
  * </p>
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Position#getAccuracy <em>Accuracy</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Position#getPoint <em>Point</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Position#getReferenceSystem <em>Reference System</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPosition()
@@ -43,4 +45,48 @@ public interface Position extends EObject {
 	 */
 	void setAccuracy(Accuracy value);
 
+	/**
+	 * Returns the value of the '<em><b>Point</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Point</em>' reference.
+	 * @see #setPoint(Point)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPosition_Point()
+	 * @model required="true"
+	 * @generated
+	 */
+	Point getPoint();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Position#getPoint <em>Point</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Point</em>' reference.
+	 * @see #getPoint()
+	 * @generated
+	 */
+	void setPoint(Point value);
+
+	/**
+	 * Returns the value of the '<em><b>Reference System</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Reference System</em>' reference.
+	 * @see #setReferenceSystem(ReferenceSystem)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPosition_ReferenceSystem()
+	 * @model required="true"
+	 * @generated
+	 */
+	ReferenceSystem getReferenceSystem();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Position#getReferenceSystem <em>Reference System</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Reference System</em>' reference.
+	 * @see #getReferenceSystem()
+	 * @generated
+	 */
+	void setReferenceSystem(ReferenceSystem value);
+
 } // Position
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/PositionEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/PositionEvent.java
index d1179c497fbb0a8f578f5035261a438af9b92f9a..ab6af1cfa47b712f7b5d9ece5883050dd9625a8d 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/PositionEvent.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/PositionEvent.java
@@ -2,6 +2,8 @@
  */
 package ipos.project.DataModellntegration.iPos_Datamodel;
 
+import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EObject;
 
 /**
@@ -13,8 +15,10 @@ import org.eclipse.emf.ecore.EObject;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getPlacing <em>Placing</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getTimeStamp <em>Time Stamp</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getLObjectId <em>LObject Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getZonedescriptors <em>Zonedescriptors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getPlacing <em>Placing</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPositionEvent()
@@ -66,4 +70,38 @@ public interface PositionEvent extends EObject {
 	 */
 	void setTimeStamp(String value);
 
+	/**
+	 * Returns the value of the '<em><b>LObject Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>LObject Id</em>' attribute.
+	 * @see #setLObjectId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPositionEvent_LObjectId()
+	 * @model
+	 * @generated
+	 */
+	String getLObjectId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent#getLObjectId <em>LObject Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>LObject Id</em>' attribute.
+	 * @see #getLObjectId()
+	 * @generated
+	 */
+	void setLObjectId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Zonedescriptors</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Zonedescriptors</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPositionEvent_Zonedescriptors()
+	 * @model
+	 * @generated
+	 */
+	EList<ZoneDescriptor> getZonedescriptors();
+
 } // PositionEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/PositionSensor.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/PositionSensor.java
deleted file mode 100644
index 4f3a5bfc3d9bdadd7a504e41833a15193947ff6b..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/PositionSensor.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Position Sensor</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getAgent <em>Agent</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getLObject <em>LObject</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getType <em>Type</em>}</li>
- * </ul>
- *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPositionSensor()
- * @model
- * @generated
- */
-public interface PositionSensor extends Entity {
-	/**
-	 * Returns the value of the '<em><b>Agent</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Agent</em>' reference.
-	 * @see #setAgent(Agent)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPositionSensor_Agent()
-	 * @model
-	 * @generated
-	 */
-	Agent getAgent();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getAgent <em>Agent</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Agent</em>' reference.
-	 * @see #getAgent()
-	 * @generated
-	 */
-	void setAgent(Agent value);
-
-	/**
-	 * Returns the value of the '<em><b>LObject</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>LObject</em>' reference.
-	 * @see #setLObject(LocalizableObject)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPositionSensor_LObject()
-	 * @model
-	 * @generated
-	 */
-	LocalizableObject getLObject();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getLObject <em>LObject</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>LObject</em>' reference.
-	 * @see #getLObject()
-	 * @generated
-	 */
-	void setLObject(LocalizableObject value);
-
-	/**
-	 * Returns the value of the '<em><b>Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type</em>' attribute.
-	 * @see #setType(String)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getPositionSensor_Type()
-	 * @model
-	 * @generated
-	 */
-	String getType();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor#getType <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type</em>' attribute.
-	 * @see #getType()
-	 * @generated
-	 */
-	void setType(String value);
-
-} // PositionSensor
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Proximity.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Proximity.java
index 1df80c851275daabb139689363d44d21dcef2339..3947b0ec5aec0c92f5331769c0b003626396d888 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Proximity.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Proximity.java
@@ -20,7 +20,7 @@ package ipos.project.DataModellntegration.iPos_Datamodel;
  * @model
  * @generated
  */
-public interface Proximity extends Rawdata {
+public interface Proximity extends RawdataEvent {
 	/**
 	 * Returns the value of the '<em><b>Tag Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Rawdata.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Rawdata.java
deleted file mode 100644
index 7d56da6457a051b047c910ec2227916687098f4b..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Rawdata.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Rawdata</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Rawdata#getSensorId <em>Sensor Id</em>}</li>
- * </ul>
- *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getRawdata()
- * @model abstract="true"
- * @generated
- */
-public interface Rawdata extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Sensor Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Sensor Id</em>' attribute.
-	 * @see #setSensorId(String)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getRawdata_SensorId()
-	 * @model
-	 * @generated
-	 */
-	String getSensorId();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Rawdata#getSensorId <em>Sensor Id</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Sensor Id</em>' attribute.
-	 * @see #getSensorId()
-	 * @generated
-	 */
-	void setSensorId(String value);
-
-} // Rawdata
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/RawdataEvent.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/RawdataEvent.java
index fc288704b7602e883f6311192c8d7ac984de37a8..384eaf4a03b692ea7196ef6373e9a7e67ec77e0a 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/RawdataEvent.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/RawdataEvent.java
@@ -2,8 +2,6 @@
  */
 package ipos.project.DataModellntegration.iPos_Datamodel;
 
-import org.eclipse.emf.common.util.EList;
-
 import org.eclipse.emf.ecore.EObject;
 
 /**
@@ -15,7 +13,7 @@ import org.eclipse.emf.ecore.EObject;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent#getRawdata <em>Rawdata</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent#getTimeStamp <em>Time Stamp</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getRawdataEvent()
@@ -24,15 +22,25 @@ import org.eclipse.emf.ecore.EObject;
  */
 public interface RawdataEvent extends EObject {
 	/**
-	 * Returns the value of the '<em><b>Rawdata</b></em>' reference list.
-	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.Rawdata}.
+	 * Returns the value of the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time Stamp</em>' attribute.
+	 * @see #setTimeStamp(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getRawdataEvent_TimeStamp()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getTimeStamp();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent#getTimeStamp <em>Time Stamp</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Rawdata</em>' reference list.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getRawdataEvent_Rawdata()
-	 * @model required="true"
+	 * @param value the new value of the '<em>Time Stamp</em>' attribute.
+	 * @see #getTimeStamp()
 	 * @generated
 	 */
-	EList<Rawdata> getRawdata();
+	void setTimeStamp(String value);
 
 } // RawdataEvent
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ReferencePosition.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ReferencePosition.java
deleted file mode 100644
index 042dc989a82c26f0b06baf2b67b5a01e2a94d0ef..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ReferencePosition.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Reference Position</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition#getPosition <em>Position</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition#getId <em>Id</em>}</li>
- * </ul>
- *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getReferencePosition()
- * @model
- * @generated
- */
-public interface ReferencePosition extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Position</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Position</em>' reference.
-	 * @see #setPosition(Position)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getReferencePosition_Position()
-	 * @model required="true"
-	 * @generated
-	 */
-	Position getPosition();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition#getPosition <em>Position</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Position</em>' reference.
-	 * @see #getPosition()
-	 * @generated
-	 */
-	void setPosition(Position value);
-
-	/**
-	 * Returns the value of the '<em><b>Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Id</em>' attribute.
-	 * @see #setId(String)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getReferencePosition_Id()
-	 * @model
-	 * @generated
-	 */
-	String getId();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition#getId <em>Id</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Id</em>' attribute.
-	 * @see #getId()
-	 * @generated
-	 */
-	void setId(String value);
-
-} // ReferencePosition
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ReferenceSystem.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ReferenceSystem.java
index 211d2443208bb3a12d926f8c1ca7ef28734aec7a..449528a95ca8e9f1952afe73e210e0f6ae3f4fc0 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ReferenceSystem.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ReferenceSystem.java
@@ -30,7 +30,7 @@ public interface ReferenceSystem extends EObject {
 	 * @return the value of the '<em>Origin</em>' reference.
 	 * @see #setOrigin(Placing)
 	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getReferenceSystem_Origin()
-	 * @model required="true"
+	 * @model
 	 * @generated
 	 */
 	Placing getOrigin();
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/RelativePosition.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/RelativePosition.java
deleted file mode 100644
index 1603702d0dbcf5472d7f3c0bb396222b2f910453..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/RelativePosition.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Relative Position</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition#getReference <em>Reference</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition#getPoint <em>Point</em>}</li>
- * </ul>
- *
- * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getRelativePosition()
- * @model
- * @generated
- */
-public interface RelativePosition extends Position {
-	/**
-	 * Returns the value of the '<em><b>Reference</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Reference</em>' reference.
-	 * @see #setReference(ReferenceSystem)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getRelativePosition_Reference()
-	 * @model required="true"
-	 * @generated
-	 */
-	ReferenceSystem getReference();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition#getReference <em>Reference</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Reference</em>' reference.
-	 * @see #getReference()
-	 * @generated
-	 */
-	void setReference(ReferenceSystem value);
-
-	/**
-	 * Returns the value of the '<em><b>Point</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Point</em>' reference.
-	 * @see #setPoint(Point)
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getRelativePosition_Point()
-	 * @model required="true"
-	 * @generated
-	 */
-	Point getPoint();
-
-	/**
-	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition#getPoint <em>Point</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Point</em>' reference.
-	 * @see #getPoint()
-	 * @generated
-	 */
-	void setPoint(Point value);
-
-} // RelativePosition
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Space.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Space.java
index e4cfc98aa5987ec0a408614f518af5aed2d3d289..50f91b531c225b7247ac1e176f66cf02675051cd 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Space.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Space.java
@@ -16,6 +16,7 @@ import org.eclipse.emf.ecore.EObject;
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Space#getX <em>X</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Space#getY <em>Y</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Space#getZ <em>Z</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Space#getCentrePoint <em>Centre Point</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getSpace()
@@ -89,4 +90,26 @@ public interface Space extends EObject {
 	 */
 	void setZ(float value);
 
+	/**
+	 * Returns the value of the '<em><b>Centre Point</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Centre Point</em>' reference.
+	 * @see #setCentrePoint(Placing)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getSpace_CentrePoint()
+	 * @model required="true"
+	 * @generated
+	 */
+	Placing getCentrePoint();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Space#getCentrePoint <em>Centre Point</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Centre Point</em>' reference.
+	 * @see #getCentrePoint()
+	 * @generated
+	 */
+	void setCentrePoint(Placing value);
+
 } // Space
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/DistantEntity.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/DistantEntity.java
new file mode 100644
index 0000000000000000000000000000000000000000..1732ed8f847f3c58b244ef07a1521b6d32d9f8fe
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/DistantEntity.java
@@ -0,0 +1,186 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Distant Entity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getLocalSensorId <em>Local Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getLocalAgentId <em>Local Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getDistantEntityId <em>Distant Entity Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getDistance <em>Distance</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getProximityIndex <em>Proximity Index</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getEntityData <em>Entity Data</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getTimeStamp <em>Time Stamp</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity()
+ * @model
+ * @generated
+ */
+public interface DistantEntity extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Local Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Local Sensor Id</em>' attribute.
+	 * @see #setLocalSensorId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity_LocalSensorId()
+	 * @model
+	 * @generated
+	 */
+	String getLocalSensorId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getLocalSensorId <em>Local Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Local Sensor Id</em>' attribute.
+	 * @see #getLocalSensorId()
+	 * @generated
+	 */
+	void setLocalSensorId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Local Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Local Agent Id</em>' attribute.
+	 * @see #setLocalAgentId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity_LocalAgentId()
+	 * @model
+	 * @generated
+	 */
+	String getLocalAgentId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getLocalAgentId <em>Local Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Local Agent Id</em>' attribute.
+	 * @see #getLocalAgentId()
+	 * @generated
+	 */
+	void setLocalAgentId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Distant Entity Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Distant Entity Id</em>' attribute.
+	 * @see #setDistantEntityId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity_DistantEntityId()
+	 * @model
+	 * @generated
+	 */
+	String getDistantEntityId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getDistantEntityId <em>Distant Entity Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Distant Entity Id</em>' attribute.
+	 * @see #getDistantEntityId()
+	 * @generated
+	 */
+	void setDistantEntityId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Distance</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Distance</em>' attribute.
+	 * @see #setDistance(double)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity_Distance()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.Double"
+	 * @generated
+	 */
+	double getDistance();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getDistance <em>Distance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Distance</em>' attribute.
+	 * @see #getDistance()
+	 * @generated
+	 */
+	void setDistance(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Proximity Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Proximity Index</em>' attribute.
+	 * @see #setProximityIndex(int)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity_ProximityIndex()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.Int"
+	 * @generated
+	 */
+	int getProximityIndex();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getProximityIndex <em>Proximity Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Proximity Index</em>' attribute.
+	 * @see #getProximityIndex()
+	 * @generated
+	 */
+	void setProximityIndex(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Entity Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Entity Data</em>' attribute.
+	 * @see #setEntityData(Map)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity_EntityData()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Map<String, String> getEntityData();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getEntityData <em>Entity Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Entity Data</em>' attribute.
+	 * @see #getEntityData()
+	 * @generated
+	 */
+	void setEntityData(Map<String, String> value);
+
+	/**
+	 * Returns the value of the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time Stamp</em>' attribute.
+	 * @see #setTimeStamp(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getDistantEntity_TimeStamp()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getTimeStamp();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getTimeStamp <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time Stamp</em>' attribute.
+	 * @see #getTimeStamp()
+	 * @generated
+	 */
+	void setTimeStamp(String value);
+
+} // DistantEntity
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/MonitoringTarget.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/MonitoringTarget.java
new file mode 100644
index 0000000000000000000000000000000000000000..6cc4dc9bb9bb0c171d3c0ed287185de294b73462
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/MonitoringTarget.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Monitoring Target</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget#getTargetSensorId <em>Target Sensor Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getMonitoringTarget()
+ * @model
+ * @generated
+ */
+public interface MonitoringTarget extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Target Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target Sensor Id</em>' attribute.
+	 * @see #setTargetSensorId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#getMonitoringTarget_TargetSensorId()
+	 * @model
+	 * @generated
+	 */
+	String getTargetSensorId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget#getTargetSensorId <em>Target Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target Sensor Id</em>' attribute.
+	 * @see #getTargetSensorId()
+	 * @generated
+	 */
+	void setTargetSensorId(String value);
+
+} // MonitoringTarget
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..0a450c96cbec603e11f8302ab822eb49b3ed8019
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozFactory.java
@@ -0,0 +1,51 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage
+ * @generated
+ */
+public interface ToozFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ToozFactory eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Monitoring Target</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Monitoring Target</em>'.
+	 * @generated
+	 */
+	MonitoringTarget createMonitoringTarget();
+
+	/**
+	 * Returns a new object of class '<em>Distant Entity</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Distant Entity</em>'.
+	 * @generated
+	 */
+	DistantEntity createDistantEntity();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	ToozPackage getToozPackage();
+
+} //ToozFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozPackage.java
new file mode 100644
index 0000000000000000000000000000000000000000..2256759b60a215e40866e0458f4d836b975b3d4c
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/ToozPackage.java
@@ -0,0 +1,403 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ToozPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "Tooz";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "tooz";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "tooz";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ToozPackage eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.MonitoringTargetImpl <em>Monitoring Target</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.MonitoringTargetImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl#getMonitoringTarget()
+	 * @generated
+	 */
+	int MONITORING_TARGET = 0;
+
+	/**
+	 * The feature id for the '<em><b>Target Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_TARGET__TARGET_SENSOR_ID = 0;
+
+	/**
+	 * The number of structural features of the '<em>Monitoring Target</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_TARGET_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Monitoring Target</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MONITORING_TARGET_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl <em>Distant Entity</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl#getDistantEntity()
+	 * @generated
+	 */
+	int DISTANT_ENTITY = 1;
+
+	/**
+	 * The feature id for the '<em><b>Local Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTANT_ENTITY__LOCAL_SENSOR_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Local Agent Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTANT_ENTITY__LOCAL_AGENT_ID = 1;
+
+	/**
+	 * The feature id for the '<em><b>Distant Entity Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTANT_ENTITY__DISTANT_ENTITY_ID = 2;
+
+	/**
+	 * The feature id for the '<em><b>Distance</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTANT_ENTITY__DISTANCE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Proximity Index</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTANT_ENTITY__PROXIMITY_INDEX = 4;
+
+	/**
+	 * The feature id for the '<em><b>Entity Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTANT_ENTITY__ENTITY_DATA = 5;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTANT_ENTITY__TIME_STAMP = 6;
+
+	/**
+	 * The number of structural features of the '<em>Distant Entity</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTANT_ENTITY_FEATURE_COUNT = 7;
+
+	/**
+	 * The number of operations of the '<em>Distant Entity</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTANT_ENTITY_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget <em>Monitoring Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Monitoring Target</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget
+	 * @generated
+	 */
+	EClass getMonitoringTarget();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget#getTargetSensorId <em>Target Sensor Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Target Sensor Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget#getTargetSensorId()
+	 * @see #getMonitoringTarget()
+	 * @generated
+	 */
+	EAttribute getMonitoringTarget_TargetSensorId();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity <em>Distant Entity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Distant Entity</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity
+	 * @generated
+	 */
+	EClass getDistantEntity();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getLocalSensorId <em>Local Sensor Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Local Sensor Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getLocalSensorId()
+	 * @see #getDistantEntity()
+	 * @generated
+	 */
+	EAttribute getDistantEntity_LocalSensorId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getLocalAgentId <em>Local Agent Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Local Agent Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getLocalAgentId()
+	 * @see #getDistantEntity()
+	 * @generated
+	 */
+	EAttribute getDistantEntity_LocalAgentId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getDistantEntityId <em>Distant Entity Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Distant Entity Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getDistantEntityId()
+	 * @see #getDistantEntity()
+	 * @generated
+	 */
+	EAttribute getDistantEntity_DistantEntityId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getDistance <em>Distance</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Distance</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getDistance()
+	 * @see #getDistantEntity()
+	 * @generated
+	 */
+	EAttribute getDistantEntity_Distance();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getProximityIndex <em>Proximity Index</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Proximity Index</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getProximityIndex()
+	 * @see #getDistantEntity()
+	 * @generated
+	 */
+	EAttribute getDistantEntity_ProximityIndex();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getEntityData <em>Entity Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Entity Data</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getEntityData()
+	 * @see #getDistantEntity()
+	 * @generated
+	 */
+	EAttribute getDistantEntity_EntityData();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getTimeStamp <em>Time Stamp</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Time Stamp</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity#getTimeStamp()
+	 * @see #getDistantEntity()
+	 * @generated
+	 */
+	EAttribute getDistantEntity_TimeStamp();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	ToozFactory getToozFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.MonitoringTargetImpl <em>Monitoring Target</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.MonitoringTargetImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl#getMonitoringTarget()
+		 * @generated
+		 */
+		EClass MONITORING_TARGET = eINSTANCE.getMonitoringTarget();
+
+		/**
+		 * The meta object literal for the '<em><b>Target Sensor Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute MONITORING_TARGET__TARGET_SENSOR_ID = eINSTANCE.getMonitoringTarget_TargetSensorId();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl <em>Distant Entity</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl#getDistantEntity()
+		 * @generated
+		 */
+		EClass DISTANT_ENTITY = eINSTANCE.getDistantEntity();
+
+		/**
+		 * The meta object literal for the '<em><b>Local Sensor Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DISTANT_ENTITY__LOCAL_SENSOR_ID = eINSTANCE.getDistantEntity_LocalSensorId();
+
+		/**
+		 * The meta object literal for the '<em><b>Local Agent Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DISTANT_ENTITY__LOCAL_AGENT_ID = eINSTANCE.getDistantEntity_LocalAgentId();
+
+		/**
+		 * The meta object literal for the '<em><b>Distant Entity Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DISTANT_ENTITY__DISTANT_ENTITY_ID = eINSTANCE.getDistantEntity_DistantEntityId();
+
+		/**
+		 * The meta object literal for the '<em><b>Distance</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DISTANT_ENTITY__DISTANCE = eINSTANCE.getDistantEntity_Distance();
+
+		/**
+		 * The meta object literal for the '<em><b>Proximity Index</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DISTANT_ENTITY__PROXIMITY_INDEX = eINSTANCE.getDistantEntity_ProximityIndex();
+
+		/**
+		 * The meta object literal for the '<em><b>Entity Data</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DISTANT_ENTITY__ENTITY_DATA = eINSTANCE.getDistantEntity_EntityData();
+
+		/**
+		 * The meta object literal for the '<em><b>Time Stamp</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DISTANT_ENTITY__TIME_STAMP = eINSTANCE.getDistantEntity_TimeStamp();
+
+	}
+
+} //ToozPackage
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/DistantEntityImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/DistantEntityImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..08f71161267c3c744dedd60c74f0c98a638c3d31
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/DistantEntityImpl.java
@@ -0,0 +1,491 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Distant Entity</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getLocalSensorId <em>Local Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getLocalAgentId <em>Local Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getDistantEntityId <em>Distant Entity Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getDistance <em>Distance</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getProximityIndex <em>Proximity Index</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getEntityData <em>Entity Data</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.DistantEntityImpl#getTimeStamp <em>Time Stamp</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DistantEntityImpl extends MinimalEObjectImpl.Container implements DistantEntity {
+	/**
+	 * The default value of the '{@link #getLocalSensorId() <em>Local Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocalSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LOCAL_SENSOR_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLocalSensorId() <em>Local Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocalSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String localSensorId = LOCAL_SENSOR_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLocalAgentId() <em>Local Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocalAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LOCAL_AGENT_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLocalAgentId() <em>Local Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocalAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String localAgentId = LOCAL_AGENT_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDistantEntityId() <em>Distant Entity Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDistantEntityId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DISTANT_ENTITY_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDistantEntityId() <em>Distant Entity Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDistantEntityId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String distantEntityId = DISTANT_ENTITY_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDistance() <em>Distance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDistance()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double DISTANCE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getDistance() <em>Distance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDistance()
+	 * @generated
+	 * @ordered
+	 */
+	protected double distance = DISTANCE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getProximityIndex() <em>Proximity Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProximityIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int PROXIMITY_INDEX_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getProximityIndex() <em>Proximity Index</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProximityIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected int proximityIndex = PROXIMITY_INDEX_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getEntityData() <em>Entity Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEntityData()
+	 * @generated
+	 * @ordered
+	 */
+	protected Map<String, String> entityData;
+
+	/**
+	 * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimeStamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TIME_STAMP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimeStamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected String timeStamp = TIME_STAMP_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DistantEntityImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ToozPackage.Literals.DISTANT_ENTITY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLocalSensorId() {
+		return localSensorId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLocalSensorId(String newLocalSensorId) {
+		String oldLocalSensorId = localSensorId;
+		localSensorId = newLocalSensorId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToozPackage.DISTANT_ENTITY__LOCAL_SENSOR_ID,
+					oldLocalSensorId, localSensorId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLocalAgentId() {
+		return localAgentId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLocalAgentId(String newLocalAgentId) {
+		String oldLocalAgentId = localAgentId;
+		localAgentId = newLocalAgentId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToozPackage.DISTANT_ENTITY__LOCAL_AGENT_ID,
+					oldLocalAgentId, localAgentId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDistantEntityId() {
+		return distantEntityId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDistantEntityId(String newDistantEntityId) {
+		String oldDistantEntityId = distantEntityId;
+		distantEntityId = newDistantEntityId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToozPackage.DISTANT_ENTITY__DISTANT_ENTITY_ID,
+					oldDistantEntityId, distantEntityId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getDistance() {
+		return distance;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDistance(double newDistance) {
+		double oldDistance = distance;
+		distance = newDistance;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToozPackage.DISTANT_ENTITY__DISTANCE, oldDistance,
+					distance));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getProximityIndex() {
+		return proximityIndex;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProximityIndex(int newProximityIndex) {
+		int oldProximityIndex = proximityIndex;
+		proximityIndex = newProximityIndex;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToozPackage.DISTANT_ENTITY__PROXIMITY_INDEX,
+					oldProximityIndex, proximityIndex));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Map<String, String> getEntityData() {
+		return entityData;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEntityData(Map<String, String> newEntityData) {
+		Map<String, String> oldEntityData = entityData;
+		entityData = newEntityData;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToozPackage.DISTANT_ENTITY__ENTITY_DATA,
+					oldEntityData, entityData));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTimeStamp() {
+		return timeStamp;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTimeStamp(String newTimeStamp) {
+		String oldTimeStamp = timeStamp;
+		timeStamp = newTimeStamp;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToozPackage.DISTANT_ENTITY__TIME_STAMP, oldTimeStamp,
+					timeStamp));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case ToozPackage.DISTANT_ENTITY__LOCAL_SENSOR_ID:
+			return getLocalSensorId();
+		case ToozPackage.DISTANT_ENTITY__LOCAL_AGENT_ID:
+			return getLocalAgentId();
+		case ToozPackage.DISTANT_ENTITY__DISTANT_ENTITY_ID:
+			return getDistantEntityId();
+		case ToozPackage.DISTANT_ENTITY__DISTANCE:
+			return getDistance();
+		case ToozPackage.DISTANT_ENTITY__PROXIMITY_INDEX:
+			return getProximityIndex();
+		case ToozPackage.DISTANT_ENTITY__ENTITY_DATA:
+			return getEntityData();
+		case ToozPackage.DISTANT_ENTITY__TIME_STAMP:
+			return getTimeStamp();
+		}
+		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 ToozPackage.DISTANT_ENTITY__LOCAL_SENSOR_ID:
+			setLocalSensorId((String) newValue);
+			return;
+		case ToozPackage.DISTANT_ENTITY__LOCAL_AGENT_ID:
+			setLocalAgentId((String) newValue);
+			return;
+		case ToozPackage.DISTANT_ENTITY__DISTANT_ENTITY_ID:
+			setDistantEntityId((String) newValue);
+			return;
+		case ToozPackage.DISTANT_ENTITY__DISTANCE:
+			setDistance((Double) newValue);
+			return;
+		case ToozPackage.DISTANT_ENTITY__PROXIMITY_INDEX:
+			setProximityIndex((Integer) newValue);
+			return;
+		case ToozPackage.DISTANT_ENTITY__ENTITY_DATA:
+			setEntityData((Map<String, String>) newValue);
+			return;
+		case ToozPackage.DISTANT_ENTITY__TIME_STAMP:
+			setTimeStamp((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case ToozPackage.DISTANT_ENTITY__LOCAL_SENSOR_ID:
+			setLocalSensorId(LOCAL_SENSOR_ID_EDEFAULT);
+			return;
+		case ToozPackage.DISTANT_ENTITY__LOCAL_AGENT_ID:
+			setLocalAgentId(LOCAL_AGENT_ID_EDEFAULT);
+			return;
+		case ToozPackage.DISTANT_ENTITY__DISTANT_ENTITY_ID:
+			setDistantEntityId(DISTANT_ENTITY_ID_EDEFAULT);
+			return;
+		case ToozPackage.DISTANT_ENTITY__DISTANCE:
+			setDistance(DISTANCE_EDEFAULT);
+			return;
+		case ToozPackage.DISTANT_ENTITY__PROXIMITY_INDEX:
+			setProximityIndex(PROXIMITY_INDEX_EDEFAULT);
+			return;
+		case ToozPackage.DISTANT_ENTITY__ENTITY_DATA:
+			setEntityData((Map<String, String>) null);
+			return;
+		case ToozPackage.DISTANT_ENTITY__TIME_STAMP:
+			setTimeStamp(TIME_STAMP_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case ToozPackage.DISTANT_ENTITY__LOCAL_SENSOR_ID:
+			return LOCAL_SENSOR_ID_EDEFAULT == null ? localSensorId != null
+					: !LOCAL_SENSOR_ID_EDEFAULT.equals(localSensorId);
+		case ToozPackage.DISTANT_ENTITY__LOCAL_AGENT_ID:
+			return LOCAL_AGENT_ID_EDEFAULT == null ? localAgentId != null
+					: !LOCAL_AGENT_ID_EDEFAULT.equals(localAgentId);
+		case ToozPackage.DISTANT_ENTITY__DISTANT_ENTITY_ID:
+			return DISTANT_ENTITY_ID_EDEFAULT == null ? distantEntityId != null
+					: !DISTANT_ENTITY_ID_EDEFAULT.equals(distantEntityId);
+		case ToozPackage.DISTANT_ENTITY__DISTANCE:
+			return distance != DISTANCE_EDEFAULT;
+		case ToozPackage.DISTANT_ENTITY__PROXIMITY_INDEX:
+			return proximityIndex != PROXIMITY_INDEX_EDEFAULT;
+		case ToozPackage.DISTANT_ENTITY__ENTITY_DATA:
+			return entityData != null;
+		case ToozPackage.DISTANT_ENTITY__TIME_STAMP:
+			return TIME_STAMP_EDEFAULT == null ? timeStamp != null : !TIME_STAMP_EDEFAULT.equals(timeStamp);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (localSensorId: ");
+		result.append(localSensorId);
+		result.append(", localAgentId: ");
+		result.append(localAgentId);
+		result.append(", distantEntityId: ");
+		result.append(distantEntityId);
+		result.append(", distance: ");
+		result.append(distance);
+		result.append(", proximityIndex: ");
+		result.append(proximityIndex);
+		result.append(", entityData: ");
+		result.append(entityData);
+		result.append(", timeStamp: ");
+		result.append(timeStamp);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DistantEntityImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/MonitoringTargetImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/MonitoringTargetImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..26eaa0e7ec64259b5b032a12eb09d2aff82b2926
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/MonitoringTargetImpl.java
@@ -0,0 +1,166 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Monitoring Target</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.MonitoringTargetImpl#getTargetSensorId <em>Target Sensor Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MonitoringTargetImpl extends MinimalEObjectImpl.Container implements MonitoringTarget {
+	/**
+	 * The default value of the '{@link #getTargetSensorId() <em>Target Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TARGET_SENSOR_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTargetSensorId() <em>Target Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String targetSensorId = TARGET_SENSOR_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MonitoringTargetImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ToozPackage.Literals.MONITORING_TARGET;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTargetSensorId() {
+		return targetSensorId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTargetSensorId(String newTargetSensorId) {
+		String oldTargetSensorId = targetSensorId;
+		targetSensorId = newTargetSensorId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToozPackage.MONITORING_TARGET__TARGET_SENSOR_ID,
+					oldTargetSensorId, targetSensorId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case ToozPackage.MONITORING_TARGET__TARGET_SENSOR_ID:
+			return getTargetSensorId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case ToozPackage.MONITORING_TARGET__TARGET_SENSOR_ID:
+			setTargetSensorId((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case ToozPackage.MONITORING_TARGET__TARGET_SENSOR_ID:
+			setTargetSensorId(TARGET_SENSOR_ID_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case ToozPackage.MONITORING_TARGET__TARGET_SENSOR_ID:
+			return TARGET_SENSOR_ID_EDEFAULT == null ? targetSensorId != null
+					: !TARGET_SENSOR_ID_EDEFAULT.equals(targetSensorId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (targetSensorId: ");
+		result.append(targetSensorId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //MonitoringTargetImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozFactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozFactoryImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d98372bb0f29bfdc007eee69b729e8493510750
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozFactoryImpl.java
@@ -0,0 +1,107 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ToozFactoryImpl extends EFactoryImpl implements ToozFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ToozFactory init() {
+		try {
+			ToozFactory theToozFactory = (ToozFactory) EPackage.Registry.INSTANCE.getEFactory(ToozPackage.eNS_URI);
+			if (theToozFactory != null) {
+				return theToozFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new ToozFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ToozFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case ToozPackage.MONITORING_TARGET:
+			return createMonitoringTarget();
+		case ToozPackage.DISTANT_ENTITY:
+			return createDistantEntity();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MonitoringTarget createMonitoringTarget() {
+		MonitoringTargetImpl monitoringTarget = new MonitoringTargetImpl();
+		return monitoringTarget;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DistantEntity createDistantEntity() {
+		DistantEntityImpl distantEntity = new DistantEntityImpl();
+		return distantEntity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ToozPackage getToozPackage() {
+		return (ToozPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static ToozPackage getPackage() {
+		return ToozPackage.eINSTANCE;
+	}
+
+} //ToozFactoryImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..ea2bed7cffc2a1b77ddb502230b60f98c0fde590
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java
@@ -0,0 +1,356 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ToozPackageImpl extends EPackageImpl implements ToozPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass monitoringTargetEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass distantEntityEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private ToozPackageImpl() {
+		super(eNS_URI, ToozFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link ToozPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static ToozPackage init() {
+		if (isInited)
+			return (ToozPackage) EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredToozPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		ToozPackageImpl theToozPackage = registeredToozPackage instanceof ToozPackageImpl
+				? (ToozPackageImpl) registeredToozPackage
+				: new ToozPackageImpl();
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		XMLTypePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPos_DatamodelPackage.eNS_URI);
+		IPos_DatamodelPackageImpl theIPos_DatamodelPackage = (IPos_DatamodelPackageImpl) (registeredPackage instanceof IPos_DatamodelPackageImpl
+				? registeredPackage
+				: IPos_DatamodelPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OFBizPackage.eNS_URI);
+		OFBizPackageImpl theOFBizPackage = (OFBizPackageImpl) (registeredPackage instanceof OFBizPackageImpl
+				? registeredPackage
+				: OFBizPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPosDevKitPackage.eNS_URI);
+		IPosDevKitPackageImpl theIPosDevKitPackage = (IPosDevKitPackageImpl) (registeredPackage instanceof IPosDevKitPackageImpl
+				? registeredPackage
+				: IPosDevKitPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI);
+		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
+				? registeredPackage
+				: VDA5050Package.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theToozPackage.createPackageContents();
+		theIPos_DatamodelPackage.createPackageContents();
+		theOFBizPackage.createPackageContents();
+		theIPosDevKitPackage.createPackageContents();
+		theVDA5050Package.createPackageContents();
+		theOSMPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theToozPackage.initializePackageContents();
+		theIPos_DatamodelPackage.initializePackageContents();
+		theOFBizPackage.initializePackageContents();
+		theIPosDevKitPackage.initializePackageContents();
+		theVDA5050Package.initializePackageContents();
+		theOSMPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theToozPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(ToozPackage.eNS_URI, theToozPackage);
+		return theToozPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMonitoringTarget() {
+		return monitoringTargetEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMonitoringTarget_TargetSensorId() {
+		return (EAttribute) monitoringTargetEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDistantEntity() {
+		return distantEntityEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDistantEntity_LocalSensorId() {
+		return (EAttribute) distantEntityEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDistantEntity_LocalAgentId() {
+		return (EAttribute) distantEntityEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDistantEntity_DistantEntityId() {
+		return (EAttribute) distantEntityEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDistantEntity_Distance() {
+		return (EAttribute) distantEntityEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDistantEntity_ProximityIndex() {
+		return (EAttribute) distantEntityEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDistantEntity_EntityData() {
+		return (EAttribute) distantEntityEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDistantEntity_TimeStamp() {
+		return (EAttribute) distantEntityEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ToozFactory getToozFactory() {
+		return (ToozFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		monitoringTargetEClass = createEClass(MONITORING_TARGET);
+		createEAttribute(monitoringTargetEClass, MONITORING_TARGET__TARGET_SENSOR_ID);
+
+		distantEntityEClass = createEClass(DISTANT_ENTITY);
+		createEAttribute(distantEntityEClass, DISTANT_ENTITY__LOCAL_SENSOR_ID);
+		createEAttribute(distantEntityEClass, DISTANT_ENTITY__LOCAL_AGENT_ID);
+		createEAttribute(distantEntityEClass, DISTANT_ENTITY__DISTANT_ENTITY_ID);
+		createEAttribute(distantEntityEClass, DISTANT_ENTITY__DISTANCE);
+		createEAttribute(distantEntityEClass, DISTANT_ENTITY__PROXIMITY_INDEX);
+		createEAttribute(distantEntityEClass, DISTANT_ENTITY__ENTITY_DATA);
+		createEAttribute(distantEntityEClass, DISTANT_ENTITY__TIME_STAMP);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		XMLTypePackage theXMLTypePackage = (XMLTypePackage) EPackage.Registry.INSTANCE
+				.getEPackage(XMLTypePackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(monitoringTargetEClass, MonitoringTarget.class, "MonitoringTarget", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getMonitoringTarget_TargetSensorId(), ecorePackage.getEString(), "targetSensorId", null, 0, 1,
+				MonitoringTarget.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(distantEntityEClass, DistantEntity.class, "DistantEntity", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDistantEntity_LocalSensorId(), ecorePackage.getEString(), "localSensorId", null, 0, 1,
+				DistantEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDistantEntity_LocalAgentId(), ecorePackage.getEString(), "localAgentId", null, 0, 1,
+				DistantEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDistantEntity_DistantEntityId(), ecorePackage.getEString(), "distantEntityId", null, 0, 1,
+				DistantEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDistantEntity_Distance(), theXMLTypePackage.getDouble(), "distance", null, 0, 1,
+				DistantEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDistantEntity_ProximityIndex(), theXMLTypePackage.getInt(), "proximityIndex", null, 0, 1,
+				DistantEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		EGenericType g1 = createEGenericType(ecorePackage.getEMap());
+		EGenericType g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getDistantEntity_EntityData(), g1, "entityData", null, 0, 1, DistantEntity.class, IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDistantEntity_TimeStamp(), theXMLTypePackage.getString(), "timeStamp", null, 0, 1,
+				DistantEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+	}
+
+} //ToozPackageImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/util/ToozAdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/util/ToozAdapterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ae63c55670acf2dbede9bebf65e473649351290
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/util/ToozAdapterFactory.java
@@ -0,0 +1,138 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage
+ * @generated
+ */
+public class ToozAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ToozPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ToozAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = ToozPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ToozSwitch<Adapter> modelSwitch = new ToozSwitch<Adapter>() {
+		@Override
+		public Adapter caseMonitoringTarget(MonitoringTarget object) {
+			return createMonitoringTargetAdapter();
+		}
+
+		@Override
+		public Adapter caseDistantEntity(DistantEntity object) {
+			return createDistantEntityAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget <em>Monitoring Target</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 ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget
+	 * @generated
+	 */
+	public Adapter createMonitoringTargetAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity <em>Distant Entity</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 ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity
+	 * @generated
+	 */
+	public Adapter createDistantEntityAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //ToozAdapterFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/util/ToozSwitch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/util/ToozSwitch.java
new file mode 100644
index 0000000000000000000000000000000000000000..be97d77ff11b3c0fa0eafd7769c1fa217c2e694f
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/util/ToozSwitch.java
@@ -0,0 +1,134 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.Tooz.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage
+ * @generated
+ */
+public class ToozSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ToozPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ToozSwitch() {
+		if (modelPackage == null) {
+			modelPackage = ToozPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case ToozPackage.MONITORING_TARGET: {
+			MonitoringTarget monitoringTarget = (MonitoringTarget) theEObject;
+			T result = caseMonitoringTarget(monitoringTarget);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case ToozPackage.DISTANT_ENTITY: {
+			DistantEntity distantEntity = (DistantEntity) theEObject;
+			T result = caseDistantEntity(distantEntity);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Monitoring Target</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>Monitoring Target</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMonitoringTarget(MonitoringTarget object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Distant Entity</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>Distant Entity</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDistantEntity(DistantEntity object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //ToozSwitch
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvPosition.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvPosition.java
new file mode 100644
index 0000000000000000000000000000000000000000..b8058dc2c4dc2b734f7d533452bc28c53c888c9e
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvPosition.java
@@ -0,0 +1,115 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Agv Position</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getTheta <em>Theta</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getMapId <em>Map Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition()
+ * @model
+ * @generated
+ */
+public interface AgvPosition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>X</em>' attribute.
+	 * @see #setX(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition_X()
+	 * @model
+	 * @generated
+	 */
+	float getX();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getX <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>X</em>' attribute.
+	 * @see #getX()
+	 * @generated
+	 */
+	void setX(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Y</em>' attribute.
+	 * @see #setY(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition_Y()
+	 * @model
+	 * @generated
+	 */
+	float getY();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getY <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Y</em>' attribute.
+	 * @see #getY()
+	 * @generated
+	 */
+	void setY(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Theta</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Theta</em>' attribute.
+	 * @see #setTheta(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition_Theta()
+	 * @model
+	 * @generated
+	 */
+	float getTheta();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getTheta <em>Theta</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Theta</em>' attribute.
+	 * @see #getTheta()
+	 * @generated
+	 */
+	void setTheta(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Map Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Map Id</em>' attribute.
+	 * @see #setMapId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvPosition_MapId()
+	 * @model
+	 * @generated
+	 */
+	String getMapId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getMapId <em>Map Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Map Id</em>' attribute.
+	 * @see #getMapId()
+	 * @generated
+	 */
+	void setMapId(String value);
+
+} // AgvPosition
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvState.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvState.java
new file mode 100644
index 0000000000000000000000000000000000000000..d8ae2e25688d9b7b36f209ff9e54e0d5b1d98086
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/AgvState.java
@@ -0,0 +1,189 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Agv State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getTimeStamp <em>Time Stamp</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getSerialNumber <em>Serial Number</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLastNodeId <em>Last Node Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getBatteryState <em>Battery State</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getErrors <em>Errors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getAgvposition <em>Agvposition</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLoads <em>Loads</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getManufacturer <em>Manufacturer</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState()
+ * @model
+ * @generated
+ */
+public interface AgvState extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time Stamp</em>' attribute.
+	 * @see #setTimeStamp(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_TimeStamp()
+	 * @model
+	 * @generated
+	 */
+	String getTimeStamp();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getTimeStamp <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time Stamp</em>' attribute.
+	 * @see #getTimeStamp()
+	 * @generated
+	 */
+	void setTimeStamp(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Serial Number</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Serial Number</em>' attribute.
+	 * @see #setSerialNumber(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_SerialNumber()
+	 * @model
+	 * @generated
+	 */
+	String getSerialNumber();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getSerialNumber <em>Serial Number</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Serial Number</em>' attribute.
+	 * @see #getSerialNumber()
+	 * @generated
+	 */
+	void setSerialNumber(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Last Node Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Last Node Id</em>' attribute.
+	 * @see #setLastNodeId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_LastNodeId()
+	 * @model
+	 * @generated
+	 */
+	String getLastNodeId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLastNodeId <em>Last Node Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Last Node Id</em>' attribute.
+	 * @see #getLastNodeId()
+	 * @generated
+	 */
+	void setLastNodeId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Battery State</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Battery State</em>' reference.
+	 * @see #setBatteryState(BatteryState)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_BatteryState()
+	 * @model
+	 * @generated
+	 */
+	BatteryState getBatteryState();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getBatteryState <em>Battery State</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Battery State</em>' reference.
+	 * @see #getBatteryState()
+	 * @generated
+	 */
+	void setBatteryState(BatteryState value);
+
+	/**
+	 * Returns the value of the '<em><b>Errors</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Errors</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_Errors()
+	 * @model
+	 * @generated
+	 */
+	EList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> getErrors();
+
+	/**
+	 * Returns the value of the '<em><b>Agvposition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Agvposition</em>' reference.
+	 * @see #setAgvposition(AgvPosition)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_Agvposition()
+	 * @model
+	 * @generated
+	 */
+	AgvPosition getAgvposition();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getAgvposition <em>Agvposition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Agvposition</em>' reference.
+	 * @see #getAgvposition()
+	 * @generated
+	 */
+	void setAgvposition(AgvPosition value);
+
+	/**
+	 * Returns the value of the '<em><b>Loads</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Loads</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_Loads()
+	 * @model
+	 * @generated
+	 */
+	EList<Load> getLoads();
+
+	/**
+	 * Returns the value of the '<em><b>Manufacturer</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Manufacturer</em>' attribute.
+	 * @see #setManufacturer(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getAgvState_Manufacturer()
+	 * @model
+	 * @generated
+	 */
+	String getManufacturer();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getManufacturer <em>Manufacturer</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Manufacturer</em>' attribute.
+	 * @see #getManufacturer()
+	 * @generated
+	 */
+	void setManufacturer(String value);
+
+} // AgvState
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/BatteryState.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/BatteryState.java
new file mode 100644
index 0000000000000000000000000000000000000000..1cff3f384decc5b971af759ca384eeacf4ef3d03
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/BatteryState.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Battery State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState#getBatteryCharge <em>Battery Charge</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getBatteryState()
+ * @model
+ * @generated
+ */
+public interface BatteryState extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Battery Charge</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Battery Charge</em>' attribute.
+	 * @see #setBatteryCharge(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getBatteryState_BatteryCharge()
+	 * @model
+	 * @generated
+	 */
+	float getBatteryCharge();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState#getBatteryCharge <em>Battery Charge</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Battery Charge</em>' attribute.
+	 * @see #getBatteryCharge()
+	 * @generated
+	 */
+	void setBatteryCharge(float value);
+
+} // BatteryState
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Error.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Error.java
new file mode 100644
index 0000000000000000000000000000000000000000..f64088e4219e642a24d3154abe42d2d20f280400
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Error.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Error</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error#getErrorType <em>Error Type</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getError()
+ * @model
+ * @generated
+ */
+public interface Error extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Error Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Error Type</em>' attribute.
+	 * @see #setErrorType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getError_ErrorType()
+	 * @model
+	 * @generated
+	 */
+	String getErrorType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error#getErrorType <em>Error Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Error Type</em>' attribute.
+	 * @see #getErrorType()
+	 * @generated
+	 */
+	void setErrorType(String value);
+
+} // Error
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Load.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Load.java
new file mode 100644
index 0000000000000000000000000000000000000000..2f5c1dd82703e97bcadce1ef2638a408041ba1f0
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/Load.java
@@ -0,0 +1,46 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Load</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load#getLoadId <em>Load Id</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getLoad()
+ * @model
+ * @generated
+ */
+public interface Load extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Load Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Load Id</em>' attribute.
+	 * @see #setLoadId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#getLoad_LoadId()
+	 * @model
+	 * @generated
+	 */
+	String getLoadId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load#getLoadId <em>Load Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Load Id</em>' attribute.
+	 * @see #getLoadId()
+	 * @generated
+	 */
+	void setLoadId(String value);
+
+} // Load
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Factory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Factory.java
new file mode 100644
index 0000000000000000000000000000000000000000..eaca1b8e2dca0743acbe571922f75834e1c0211b
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Factory.java
@@ -0,0 +1,78 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package
+ * @generated
+ */
+public interface VDA5050Factory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	VDA5050Factory eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050FactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Agv State</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Agv State</em>'.
+	 * @generated
+	 */
+	AgvState createAgvState();
+
+	/**
+	 * Returns a new object of class '<em>Battery State</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Battery State</em>'.
+	 * @generated
+	 */
+	BatteryState createBatteryState();
+
+	/**
+	 * Returns a new object of class '<em>Error</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Error</em>'.
+	 * @generated
+	 */
+	Error createError();
+
+	/**
+	 * Returns a new object of class '<em>Agv Position</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Agv Position</em>'.
+	 * @generated
+	 */
+	AgvPosition createAgvPosition();
+
+	/**
+	 * Returns a new object of class '<em>Load</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Load</em>'.
+	 * @generated
+	 */
+	Load createLoad();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	VDA5050Package getVDA5050Package();
+
+} //VDA5050Factory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Package.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Package.java
new file mode 100644
index 0000000000000000000000000000000000000000..3dcb767f8cd9098eb6eff1a7ac2bdc3a8e82c9bf
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/VDA5050Package.java
@@ -0,0 +1,725 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Factory
+ * @model kind="package"
+ * @generated
+ */
+public interface VDA5050Package extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "VDA5050";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "vda5050";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "vda5050";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	VDA5050Package eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl <em>Agv State</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getAgvState()
+	 * @generated
+	 */
+	int AGV_STATE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE__TIME_STAMP = 0;
+
+	/**
+	 * The feature id for the '<em><b>Serial Number</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE__SERIAL_NUMBER = 1;
+
+	/**
+	 * The feature id for the '<em><b>Last Node Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE__LAST_NODE_ID = 2;
+
+	/**
+	 * The feature id for the '<em><b>Battery State</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE__BATTERY_STATE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Errors</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE__ERRORS = 4;
+
+	/**
+	 * The feature id for the '<em><b>Agvposition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE__AGVPOSITION = 5;
+
+	/**
+	 * The feature id for the '<em><b>Loads</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE__LOADS = 6;
+
+	/**
+	 * The feature id for the '<em><b>Manufacturer</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE__MANUFACTURER = 7;
+
+	/**
+	 * The number of structural features of the '<em>Agv State</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE_FEATURE_COUNT = 8;
+
+	/**
+	 * The number of operations of the '<em>Agv State</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_STATE_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl <em>Battery State</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getBatteryState()
+	 * @generated
+	 */
+	int BATTERY_STATE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Battery Charge</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BATTERY_STATE__BATTERY_CHARGE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Battery State</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BATTERY_STATE_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Battery State</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BATTERY_STATE_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl <em>Error</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getError()
+	 * @generated
+	 */
+	int ERROR = 2;
+
+	/**
+	 * The feature id for the '<em><b>Error Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ERROR__ERROR_TYPE = 0;
+
+	/**
+	 * The number of structural features of the '<em>Error</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ERROR_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Error</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ERROR_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl <em>Agv Position</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getAgvPosition()
+	 * @generated
+	 */
+	int AGV_POSITION = 3;
+
+	/**
+	 * The feature id for the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_POSITION__X = 0;
+
+	/**
+	 * The feature id for the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_POSITION__Y = 1;
+
+	/**
+	 * The feature id for the '<em><b>Theta</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_POSITION__THETA = 2;
+
+	/**
+	 * The feature id for the '<em><b>Map Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_POSITION__MAP_ID = 3;
+
+	/**
+	 * The number of structural features of the '<em>Agv Position</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_POSITION_FEATURE_COUNT = 4;
+
+	/**
+	 * The number of operations of the '<em>Agv Position</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AGV_POSITION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl <em>Load</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getLoad()
+	 * @generated
+	 */
+	int LOAD = 4;
+
+	/**
+	 * The feature id for the '<em><b>Load Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOAD__LOAD_ID = 0;
+
+	/**
+	 * The number of structural features of the '<em>Load</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOAD_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Load</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOAD_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState <em>Agv State</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Agv State</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState
+	 * @generated
+	 */
+	EClass getAgvState();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getTimeStamp <em>Time Stamp</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Time Stamp</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getTimeStamp()
+	 * @see #getAgvState()
+	 * @generated
+	 */
+	EAttribute getAgvState_TimeStamp();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getSerialNumber <em>Serial Number</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Serial Number</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getSerialNumber()
+	 * @see #getAgvState()
+	 * @generated
+	 */
+	EAttribute getAgvState_SerialNumber();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLastNodeId <em>Last Node Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Last Node Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLastNodeId()
+	 * @see #getAgvState()
+	 * @generated
+	 */
+	EAttribute getAgvState_LastNodeId();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getBatteryState <em>Battery State</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Battery State</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getBatteryState()
+	 * @see #getAgvState()
+	 * @generated
+	 */
+	EReference getAgvState_BatteryState();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getErrors <em>Errors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Errors</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getErrors()
+	 * @see #getAgvState()
+	 * @generated
+	 */
+	EReference getAgvState_Errors();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getAgvposition <em>Agvposition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Agvposition</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getAgvposition()
+	 * @see #getAgvState()
+	 * @generated
+	 */
+	EReference getAgvState_Agvposition();
+
+	/**
+	 * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLoads <em>Loads</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Loads</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getLoads()
+	 * @see #getAgvState()
+	 * @generated
+	 */
+	EReference getAgvState_Loads();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getManufacturer <em>Manufacturer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Manufacturer</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState#getManufacturer()
+	 * @see #getAgvState()
+	 * @generated
+	 */
+	EAttribute getAgvState_Manufacturer();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState <em>Battery State</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Battery State</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState
+	 * @generated
+	 */
+	EClass getBatteryState();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState#getBatteryCharge <em>Battery Charge</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Battery Charge</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState#getBatteryCharge()
+	 * @see #getBatteryState()
+	 * @generated
+	 */
+	EAttribute getBatteryState_BatteryCharge();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error <em>Error</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Error</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error
+	 * @generated
+	 */
+	EClass getError();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error#getErrorType <em>Error Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Error Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error#getErrorType()
+	 * @see #getError()
+	 * @generated
+	 */
+	EAttribute getError_ErrorType();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition <em>Agv Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Agv Position</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition
+	 * @generated
+	 */
+	EClass getAgvPosition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getX <em>X</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>X</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getX()
+	 * @see #getAgvPosition()
+	 * @generated
+	 */
+	EAttribute getAgvPosition_X();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getY <em>Y</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Y</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getY()
+	 * @see #getAgvPosition()
+	 * @generated
+	 */
+	EAttribute getAgvPosition_Y();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getTheta <em>Theta</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Theta</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getTheta()
+	 * @see #getAgvPosition()
+	 * @generated
+	 */
+	EAttribute getAgvPosition_Theta();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getMapId <em>Map Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Map Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition#getMapId()
+	 * @see #getAgvPosition()
+	 * @generated
+	 */
+	EAttribute getAgvPosition_MapId();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load <em>Load</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Load</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load
+	 * @generated
+	 */
+	EClass getLoad();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load#getLoadId <em>Load Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Load Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load#getLoadId()
+	 * @see #getLoad()
+	 * @generated
+	 */
+	EAttribute getLoad_LoadId();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	VDA5050Factory getVDA5050Factory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl <em>Agv State</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getAgvState()
+		 * @generated
+		 */
+		EClass AGV_STATE = eINSTANCE.getAgvState();
+		/**
+		 * The meta object literal for the '<em><b>Time Stamp</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AGV_STATE__TIME_STAMP = eINSTANCE.getAgvState_TimeStamp();
+		/**
+		 * The meta object literal for the '<em><b>Serial Number</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AGV_STATE__SERIAL_NUMBER = eINSTANCE.getAgvState_SerialNumber();
+		/**
+		 * The meta object literal for the '<em><b>Last Node Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AGV_STATE__LAST_NODE_ID = eINSTANCE.getAgvState_LastNodeId();
+		/**
+		 * The meta object literal for the '<em><b>Battery State</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AGV_STATE__BATTERY_STATE = eINSTANCE.getAgvState_BatteryState();
+		/**
+		 * The meta object literal for the '<em><b>Errors</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AGV_STATE__ERRORS = eINSTANCE.getAgvState_Errors();
+		/**
+		 * The meta object literal for the '<em><b>Agvposition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AGV_STATE__AGVPOSITION = eINSTANCE.getAgvState_Agvposition();
+		/**
+		 * The meta object literal for the '<em><b>Loads</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AGV_STATE__LOADS = eINSTANCE.getAgvState_Loads();
+		/**
+		 * The meta object literal for the '<em><b>Manufacturer</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AGV_STATE__MANUFACTURER = eINSTANCE.getAgvState_Manufacturer();
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl <em>Battery State</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getBatteryState()
+		 * @generated
+		 */
+		EClass BATTERY_STATE = eINSTANCE.getBatteryState();
+		/**
+		 * The meta object literal for the '<em><b>Battery Charge</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BATTERY_STATE__BATTERY_CHARGE = eINSTANCE.getBatteryState_BatteryCharge();
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl <em>Error</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getError()
+		 * @generated
+		 */
+		EClass ERROR = eINSTANCE.getError();
+		/**
+		 * The meta object literal for the '<em><b>Error Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ERROR__ERROR_TYPE = eINSTANCE.getError_ErrorType();
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl <em>Agv Position</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getAgvPosition()
+		 * @generated
+		 */
+		EClass AGV_POSITION = eINSTANCE.getAgvPosition();
+		/**
+		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AGV_POSITION__X = eINSTANCE.getAgvPosition_X();
+		/**
+		 * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AGV_POSITION__Y = eINSTANCE.getAgvPosition_Y();
+		/**
+		 * The meta object literal for the '<em><b>Theta</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AGV_POSITION__THETA = eINSTANCE.getAgvPosition_Theta();
+		/**
+		 * The meta object literal for the '<em><b>Map Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AGV_POSITION__MAP_ID = eINSTANCE.getAgvPosition_MapId();
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl <em>Load</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl#getLoad()
+		 * @generated
+		 */
+		EClass LOAD = eINSTANCE.getLoad();
+		/**
+		 * The meta object literal for the '<em><b>Load Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute LOAD__LOAD_ID = eINSTANCE.getLoad_LoadId();
+
+	}
+
+} //VDA5050Package
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvPositionImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvPositionImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..a9a32cf02ba724a3890bc987388c99fe7abf8545
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvPositionImpl.java
@@ -0,0 +1,327 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Agv Position</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl#getTheta <em>Theta</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvPositionImpl#getMapId <em>Map Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AgvPositionImpl extends MinimalEObjectImpl.Container implements AgvPosition {
+	/**
+	 * The default value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float X_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected float x = X_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Y_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected float y = Y_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTheta() <em>Theta</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTheta()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float THETA_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getTheta() <em>Theta</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTheta()
+	 * @generated
+	 * @ordered
+	 */
+	protected float theta = THETA_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMapId() <em>Map Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMapId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String MAP_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getMapId() <em>Map Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMapId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String mapId = MAP_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AgvPositionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return VDA5050Package.Literals.AGV_POSITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getX() {
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setX(float newX) {
+		float oldX = x;
+		x = newX;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_POSITION__X, oldX, x));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getY() {
+		return y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setY(float newY) {
+		float oldY = y;
+		y = newY;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_POSITION__Y, oldY, y));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getTheta() {
+		return theta;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTheta(float newTheta) {
+		float oldTheta = theta;
+		theta = newTheta;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_POSITION__THETA, oldTheta, theta));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getMapId() {
+		return mapId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMapId(String newMapId) {
+		String oldMapId = mapId;
+		mapId = newMapId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_POSITION__MAP_ID, oldMapId,
+					mapId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case VDA5050Package.AGV_POSITION__X:
+			return getX();
+		case VDA5050Package.AGV_POSITION__Y:
+			return getY();
+		case VDA5050Package.AGV_POSITION__THETA:
+			return getTheta();
+		case VDA5050Package.AGV_POSITION__MAP_ID:
+			return getMapId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case VDA5050Package.AGV_POSITION__X:
+			setX((Float) newValue);
+			return;
+		case VDA5050Package.AGV_POSITION__Y:
+			setY((Float) newValue);
+			return;
+		case VDA5050Package.AGV_POSITION__THETA:
+			setTheta((Float) newValue);
+			return;
+		case VDA5050Package.AGV_POSITION__MAP_ID:
+			setMapId((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case VDA5050Package.AGV_POSITION__X:
+			setX(X_EDEFAULT);
+			return;
+		case VDA5050Package.AGV_POSITION__Y:
+			setY(Y_EDEFAULT);
+			return;
+		case VDA5050Package.AGV_POSITION__THETA:
+			setTheta(THETA_EDEFAULT);
+			return;
+		case VDA5050Package.AGV_POSITION__MAP_ID:
+			setMapId(MAP_ID_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case VDA5050Package.AGV_POSITION__X:
+			return x != X_EDEFAULT;
+		case VDA5050Package.AGV_POSITION__Y:
+			return y != Y_EDEFAULT;
+		case VDA5050Package.AGV_POSITION__THETA:
+			return theta != THETA_EDEFAULT;
+		case VDA5050Package.AGV_POSITION__MAP_ID:
+			return MAP_ID_EDEFAULT == null ? mapId != null : !MAP_ID_EDEFAULT.equals(mapId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (x: ");
+		result.append(x);
+		result.append(", y: ");
+		result.append(y);
+		result.append(", theta: ");
+		result.append(theta);
+		result.append(", mapId: ");
+		result.append(mapId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //AgvPositionImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvStateImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvStateImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..4d93b8e1ae7edbd7cd671f6cbdeb9cf6bc51db38
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/AgvStateImpl.java
@@ -0,0 +1,538 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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 org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Agv State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getTimeStamp <em>Time Stamp</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getSerialNumber <em>Serial Number</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getLastNodeId <em>Last Node Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getBatteryState <em>Battery State</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getErrors <em>Errors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getAgvposition <em>Agvposition</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getLoads <em>Loads</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.AgvStateImpl#getManufacturer <em>Manufacturer</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AgvStateImpl extends MinimalEObjectImpl.Container implements AgvState {
+	/**
+	 * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimeStamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TIME_STAMP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimeStamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected String timeStamp = TIME_STAMP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSerialNumber() <em>Serial Number</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSerialNumber()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SERIAL_NUMBER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSerialNumber() <em>Serial Number</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSerialNumber()
+	 * @generated
+	 * @ordered
+	 */
+	protected String serialNumber = SERIAL_NUMBER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLastNodeId() <em>Last Node Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastNodeId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LAST_NODE_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLastNodeId() <em>Last Node Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastNodeId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String lastNodeId = LAST_NODE_ID_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBatteryState() <em>Battery State</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBatteryState()
+	 * @generated
+	 * @ordered
+	 */
+	protected BatteryState batteryState;
+
+	/**
+	 * The cached value of the '{@link #getErrors() <em>Errors</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrors()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> errors;
+
+	/**
+	 * The cached value of the '{@link #getAgvposition() <em>Agvposition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgvposition()
+	 * @generated
+	 * @ordered
+	 */
+	protected AgvPosition agvposition;
+
+	/**
+	 * The cached value of the '{@link #getLoads() <em>Loads</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLoads()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Load> loads;
+
+	/**
+	 * The default value of the '{@link #getManufacturer() <em>Manufacturer</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getManufacturer()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String MANUFACTURER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getManufacturer() <em>Manufacturer</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getManufacturer()
+	 * @generated
+	 * @ordered
+	 */
+	protected String manufacturer = MANUFACTURER_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AgvStateImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return VDA5050Package.Literals.AGV_STATE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTimeStamp() {
+		return timeStamp;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTimeStamp(String newTimeStamp) {
+		String oldTimeStamp = timeStamp;
+		timeStamp = newTimeStamp;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__TIME_STAMP, oldTimeStamp,
+					timeStamp));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSerialNumber() {
+		return serialNumber;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSerialNumber(String newSerialNumber) {
+		String oldSerialNumber = serialNumber;
+		serialNumber = newSerialNumber;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__SERIAL_NUMBER,
+					oldSerialNumber, serialNumber));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLastNodeId() {
+		return lastNodeId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLastNodeId(String newLastNodeId) {
+		String oldLastNodeId = lastNodeId;
+		lastNodeId = newLastNodeId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__LAST_NODE_ID, oldLastNodeId,
+					lastNodeId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BatteryState getBatteryState() {
+		if (batteryState != null && batteryState.eIsProxy()) {
+			InternalEObject oldBatteryState = (InternalEObject) batteryState;
+			batteryState = (BatteryState) eResolveProxy(oldBatteryState);
+			if (batteryState != oldBatteryState) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, VDA5050Package.AGV_STATE__BATTERY_STATE,
+							oldBatteryState, batteryState));
+			}
+		}
+		return batteryState;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BatteryState basicGetBatteryState() {
+		return batteryState;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBatteryState(BatteryState newBatteryState) {
+		BatteryState oldBatteryState = batteryState;
+		batteryState = newBatteryState;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__BATTERY_STATE,
+					oldBatteryState, batteryState));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error> getErrors() {
+		if (errors == null) {
+			errors = new EObjectResolvingEList<ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error>(
+					ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error.class, this,
+					VDA5050Package.AGV_STATE__ERRORS);
+		}
+		return errors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AgvPosition getAgvposition() {
+		if (agvposition != null && agvposition.eIsProxy()) {
+			InternalEObject oldAgvposition = (InternalEObject) agvposition;
+			agvposition = (AgvPosition) eResolveProxy(oldAgvposition);
+			if (agvposition != oldAgvposition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, VDA5050Package.AGV_STATE__AGVPOSITION,
+							oldAgvposition, agvposition));
+			}
+		}
+		return agvposition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AgvPosition basicGetAgvposition() {
+		return agvposition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAgvposition(AgvPosition newAgvposition) {
+		AgvPosition oldAgvposition = agvposition;
+		agvposition = newAgvposition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__AGVPOSITION, oldAgvposition,
+					agvposition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Load> getLoads() {
+		if (loads == null) {
+			loads = new EObjectResolvingEList<Load>(Load.class, this, VDA5050Package.AGV_STATE__LOADS);
+		}
+		return loads;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getManufacturer() {
+		return manufacturer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setManufacturer(String newManufacturer) {
+		String oldManufacturer = manufacturer;
+		manufacturer = newManufacturer;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.AGV_STATE__MANUFACTURER,
+					oldManufacturer, manufacturer));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case VDA5050Package.AGV_STATE__TIME_STAMP:
+			return getTimeStamp();
+		case VDA5050Package.AGV_STATE__SERIAL_NUMBER:
+			return getSerialNumber();
+		case VDA5050Package.AGV_STATE__LAST_NODE_ID:
+			return getLastNodeId();
+		case VDA5050Package.AGV_STATE__BATTERY_STATE:
+			if (resolve)
+				return getBatteryState();
+			return basicGetBatteryState();
+		case VDA5050Package.AGV_STATE__ERRORS:
+			return getErrors();
+		case VDA5050Package.AGV_STATE__AGVPOSITION:
+			if (resolve)
+				return getAgvposition();
+			return basicGetAgvposition();
+		case VDA5050Package.AGV_STATE__LOADS:
+			return getLoads();
+		case VDA5050Package.AGV_STATE__MANUFACTURER:
+			return getManufacturer();
+		}
+		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 VDA5050Package.AGV_STATE__TIME_STAMP:
+			setTimeStamp((String) newValue);
+			return;
+		case VDA5050Package.AGV_STATE__SERIAL_NUMBER:
+			setSerialNumber((String) newValue);
+			return;
+		case VDA5050Package.AGV_STATE__LAST_NODE_ID:
+			setLastNodeId((String) newValue);
+			return;
+		case VDA5050Package.AGV_STATE__BATTERY_STATE:
+			setBatteryState((BatteryState) newValue);
+			return;
+		case VDA5050Package.AGV_STATE__ERRORS:
+			getErrors().clear();
+			getErrors().addAll(
+					(Collection<? extends ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error>) newValue);
+			return;
+		case VDA5050Package.AGV_STATE__AGVPOSITION:
+			setAgvposition((AgvPosition) newValue);
+			return;
+		case VDA5050Package.AGV_STATE__LOADS:
+			getLoads().clear();
+			getLoads().addAll((Collection<? extends Load>) newValue);
+			return;
+		case VDA5050Package.AGV_STATE__MANUFACTURER:
+			setManufacturer((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case VDA5050Package.AGV_STATE__TIME_STAMP:
+			setTimeStamp(TIME_STAMP_EDEFAULT);
+			return;
+		case VDA5050Package.AGV_STATE__SERIAL_NUMBER:
+			setSerialNumber(SERIAL_NUMBER_EDEFAULT);
+			return;
+		case VDA5050Package.AGV_STATE__LAST_NODE_ID:
+			setLastNodeId(LAST_NODE_ID_EDEFAULT);
+			return;
+		case VDA5050Package.AGV_STATE__BATTERY_STATE:
+			setBatteryState((BatteryState) null);
+			return;
+		case VDA5050Package.AGV_STATE__ERRORS:
+			getErrors().clear();
+			return;
+		case VDA5050Package.AGV_STATE__AGVPOSITION:
+			setAgvposition((AgvPosition) null);
+			return;
+		case VDA5050Package.AGV_STATE__LOADS:
+			getLoads().clear();
+			return;
+		case VDA5050Package.AGV_STATE__MANUFACTURER:
+			setManufacturer(MANUFACTURER_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case VDA5050Package.AGV_STATE__TIME_STAMP:
+			return TIME_STAMP_EDEFAULT == null ? timeStamp != null : !TIME_STAMP_EDEFAULT.equals(timeStamp);
+		case VDA5050Package.AGV_STATE__SERIAL_NUMBER:
+			return SERIAL_NUMBER_EDEFAULT == null ? serialNumber != null : !SERIAL_NUMBER_EDEFAULT.equals(serialNumber);
+		case VDA5050Package.AGV_STATE__LAST_NODE_ID:
+			return LAST_NODE_ID_EDEFAULT == null ? lastNodeId != null : !LAST_NODE_ID_EDEFAULT.equals(lastNodeId);
+		case VDA5050Package.AGV_STATE__BATTERY_STATE:
+			return batteryState != null;
+		case VDA5050Package.AGV_STATE__ERRORS:
+			return errors != null && !errors.isEmpty();
+		case VDA5050Package.AGV_STATE__AGVPOSITION:
+			return agvposition != null;
+		case VDA5050Package.AGV_STATE__LOADS:
+			return loads != null && !loads.isEmpty();
+		case VDA5050Package.AGV_STATE__MANUFACTURER:
+			return MANUFACTURER_EDEFAULT == null ? manufacturer != null : !MANUFACTURER_EDEFAULT.equals(manufacturer);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (timeStamp: ");
+		result.append(timeStamp);
+		result.append(", serialNumber: ");
+		result.append(serialNumber);
+		result.append(", lastNodeId: ");
+		result.append(lastNodeId);
+		result.append(", manufacturer: ");
+		result.append(manufacturer);
+		result.append(')');
+		return result.toString();
+	}
+
+} //AgvStateImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/BatteryStateImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/BatteryStateImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..4c9100bb48b4a201b15342fb3fc54e1556afe4ea
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/BatteryStateImpl.java
@@ -0,0 +1,165 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Battery State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.BatteryStateImpl#getBatteryCharge <em>Battery Charge</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BatteryStateImpl extends MinimalEObjectImpl.Container implements BatteryState {
+	/**
+	 * The default value of the '{@link #getBatteryCharge() <em>Battery Charge</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBatteryCharge()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float BATTERY_CHARGE_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getBatteryCharge() <em>Battery Charge</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBatteryCharge()
+	 * @generated
+	 * @ordered
+	 */
+	protected float batteryCharge = BATTERY_CHARGE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BatteryStateImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return VDA5050Package.Literals.BATTERY_STATE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getBatteryCharge() {
+		return batteryCharge;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBatteryCharge(float newBatteryCharge) {
+		float oldBatteryCharge = batteryCharge;
+		batteryCharge = newBatteryCharge;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.BATTERY_STATE__BATTERY_CHARGE,
+					oldBatteryCharge, batteryCharge));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case VDA5050Package.BATTERY_STATE__BATTERY_CHARGE:
+			return getBatteryCharge();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case VDA5050Package.BATTERY_STATE__BATTERY_CHARGE:
+			setBatteryCharge((Float) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case VDA5050Package.BATTERY_STATE__BATTERY_CHARGE:
+			setBatteryCharge(BATTERY_CHARGE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case VDA5050Package.BATTERY_STATE__BATTERY_CHARGE:
+			return batteryCharge != BATTERY_CHARGE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (batteryCharge: ");
+		result.append(batteryCharge);
+		result.append(')');
+		return result.toString();
+	}
+
+} //BatteryStateImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/ErrorImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/ErrorImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..f59ff42f854e079bd20a74341e522ba6efb0b967
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/ErrorImpl.java
@@ -0,0 +1,165 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Error</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.ErrorImpl#getErrorType <em>Error Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ErrorImpl extends MinimalEObjectImpl.Container
+		implements ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error {
+	/**
+	 * The default value of the '{@link #getErrorType() <em>Error Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ERROR_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrorType() <em>Error Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String errorType = ERROR_TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ErrorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return VDA5050Package.Literals.ERROR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getErrorType() {
+		return errorType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrorType(String newErrorType) {
+		String oldErrorType = errorType;
+		errorType = newErrorType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.ERROR__ERROR_TYPE, oldErrorType,
+					errorType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case VDA5050Package.ERROR__ERROR_TYPE:
+			return getErrorType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case VDA5050Package.ERROR__ERROR_TYPE:
+			setErrorType((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case VDA5050Package.ERROR__ERROR_TYPE:
+			setErrorType(ERROR_TYPE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case VDA5050Package.ERROR__ERROR_TYPE:
+			return ERROR_TYPE_EDEFAULT == null ? errorType != null : !ERROR_TYPE_EDEFAULT.equals(errorType);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (errorType: ");
+		result.append(errorType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ErrorImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RawdataImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/LoadImpl.java
similarity index 58%
rename from src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RawdataImpl.java
rename to src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/LoadImpl.java
index 78738a1877a9353cf923eaa824cc5bd8fae57910..166711ac3f0e363c2488e82736798c00fcb96de3 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RawdataImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/LoadImpl.java
@@ -1,9 +1,9 @@
 /**
  */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl;
 
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.Rawdata;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
 
 import org.eclipse.emf.common.notify.Notification;
 
@@ -14,44 +14,44 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
 /**
  * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Rawdata</b></em>'.
+ * An implementation of the model object '<em><b>Load</b></em>'.
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataImpl#getSensorId <em>Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.LoadImpl#getLoadId <em>Load Id</em>}</li>
  * </ul>
  *
  * @generated
  */
-public abstract class RawdataImpl extends MinimalEObjectImpl.Container implements Rawdata {
+public class LoadImpl extends MinimalEObjectImpl.Container implements Load {
 	/**
-	 * The default value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * The default value of the '{@link #getLoadId() <em>Load Id</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getSensorId()
+	 * @see #getLoadId()
 	 * @generated
 	 * @ordered
 	 */
-	protected static final String SENSOR_ID_EDEFAULT = null;
+	protected static final String LOAD_ID_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * The cached value of the '{@link #getLoadId() <em>Load Id</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getSensorId()
+	 * @see #getLoadId()
 	 * @generated
 	 * @ordered
 	 */
-	protected String sensorId = SENSOR_ID_EDEFAULT;
+	protected String loadId = LOAD_ID_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected RawdataImpl() {
+	protected LoadImpl() {
 		super();
 	}
 
@@ -62,7 +62,7 @@ public abstract class RawdataImpl extends MinimalEObjectImpl.Container implement
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.RAWDATA;
+		return VDA5050Package.Literals.LOAD;
 	}
 
 	/**
@@ -70,8 +70,8 @@ public abstract class RawdataImpl extends MinimalEObjectImpl.Container implement
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String getSensorId() {
-		return sensorId;
+	public String getLoadId() {
+		return loadId;
 	}
 
 	/**
@@ -79,12 +79,11 @@ public abstract class RawdataImpl extends MinimalEObjectImpl.Container implement
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setSensorId(String newSensorId) {
-		String oldSensorId = sensorId;
-		sensorId = newSensorId;
+	public void setLoadId(String newLoadId) {
+		String oldLoadId = loadId;
+		loadId = newLoadId;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.RAWDATA__SENSOR_ID, oldSensorId,
-					sensorId));
+			eNotify(new ENotificationImpl(this, Notification.SET, VDA5050Package.LOAD__LOAD_ID, oldLoadId, loadId));
 	}
 
 	/**
@@ -95,8 +94,8 @@ public abstract class RawdataImpl extends MinimalEObjectImpl.Container implement
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.RAWDATA__SENSOR_ID:
-			return getSensorId();
+		case VDA5050Package.LOAD__LOAD_ID:
+			return getLoadId();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -109,8 +108,8 @@ public abstract class RawdataImpl extends MinimalEObjectImpl.Container implement
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.RAWDATA__SENSOR_ID:
-			setSensorId((String) newValue);
+		case VDA5050Package.LOAD__LOAD_ID:
+			setLoadId((String) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -124,8 +123,8 @@ public abstract class RawdataImpl extends MinimalEObjectImpl.Container implement
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.RAWDATA__SENSOR_ID:
-			setSensorId(SENSOR_ID_EDEFAULT);
+		case VDA5050Package.LOAD__LOAD_ID:
+			setLoadId(LOAD_ID_EDEFAULT);
 			return;
 		}
 		super.eUnset(featureID);
@@ -139,8 +138,8 @@ public abstract class RawdataImpl extends MinimalEObjectImpl.Container implement
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.RAWDATA__SENSOR_ID:
-			return SENSOR_ID_EDEFAULT == null ? sensorId != null : !SENSOR_ID_EDEFAULT.equals(sensorId);
+		case VDA5050Package.LOAD__LOAD_ID:
+			return LOAD_ID_EDEFAULT == null ? loadId != null : !LOAD_ID_EDEFAULT.equals(loadId);
 		}
 		return super.eIsSet(featureID);
 	}
@@ -156,10 +155,10 @@ public abstract class RawdataImpl extends MinimalEObjectImpl.Container implement
 			return super.toString();
 
 		StringBuilder result = new StringBuilder(super.toString());
-		result.append(" (sensorId: ");
-		result.append(sensorId);
+		result.append(" (loadId: ");
+		result.append(loadId);
 		result.append(')');
 		return result.toString();
 	}
 
-} //RawdataImpl
+} //LoadImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050FactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050FactoryImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..261fd29ee806c4931e7b7bd066322047c0cfa92d
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050FactoryImpl.java
@@ -0,0 +1,150 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Factory;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VDA5050FactoryImpl extends EFactoryImpl implements VDA5050Factory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static VDA5050Factory init() {
+		try {
+			VDA5050Factory theVDA5050Factory = (VDA5050Factory) EPackage.Registry.INSTANCE
+					.getEFactory(VDA5050Package.eNS_URI);
+			if (theVDA5050Factory != null) {
+				return theVDA5050Factory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new VDA5050FactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VDA5050FactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case VDA5050Package.AGV_STATE:
+			return createAgvState();
+		case VDA5050Package.BATTERY_STATE:
+			return createBatteryState();
+		case VDA5050Package.ERROR:
+			return createError();
+		case VDA5050Package.AGV_POSITION:
+			return createAgvPosition();
+		case VDA5050Package.LOAD:
+			return createLoad();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AgvState createAgvState() {
+		AgvStateImpl agvState = new AgvStateImpl();
+		return agvState;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BatteryState createBatteryState() {
+		BatteryStateImpl batteryState = new BatteryStateImpl();
+		return batteryState;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error createError() {
+		ErrorImpl error = new ErrorImpl();
+		return error;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AgvPosition createAgvPosition() {
+		AgvPositionImpl agvPosition = new AgvPositionImpl();
+		return agvPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Load createLoad() {
+		LoadImpl load = new LoadImpl();
+		return load;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VDA5050Package getVDA5050Package() {
+		return (VDA5050Package) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static VDA5050Package getPackage() {
+		return VDA5050Package.eINSTANCE;
+	}
+
+} //VDA5050FactoryImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..eaeb19f8c4d0e6713c9cc0ba84ba7577d5f0a618
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java
@@ -0,0 +1,489 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Factory;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VDA5050PackageImpl extends EPackageImpl implements VDA5050Package {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass agvStateEClass = null;
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass batteryStateEClass = null;
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass errorEClass = null;
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass agvPositionEClass = null;
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass loadEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private VDA5050PackageImpl() {
+		super(eNS_URI, VDA5050Factory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link VDA5050Package#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static VDA5050Package init() {
+		if (isInited)
+			return (VDA5050Package) EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredVDA5050Package = EPackage.Registry.INSTANCE.get(eNS_URI);
+		VDA5050PackageImpl theVDA5050Package = registeredVDA5050Package instanceof VDA5050PackageImpl
+				? (VDA5050PackageImpl) registeredVDA5050Package
+				: new VDA5050PackageImpl();
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPos_DatamodelPackage.eNS_URI);
+		IPos_DatamodelPackageImpl theIPos_DatamodelPackage = (IPos_DatamodelPackageImpl) (registeredPackage instanceof IPos_DatamodelPackageImpl
+				? registeredPackage
+				: IPos_DatamodelPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OFBizPackage.eNS_URI);
+		OFBizPackageImpl theOFBizPackage = (OFBizPackageImpl) (registeredPackage instanceof OFBizPackageImpl
+				? registeredPackage
+				: OFBizPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPosDevKitPackage.eNS_URI);
+		IPosDevKitPackageImpl theIPosDevKitPackage = (IPosDevKitPackageImpl) (registeredPackage instanceof IPosDevKitPackageImpl
+				? registeredPackage
+				: IPosDevKitPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI);
+		ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl
+				? registeredPackage
+				: ToozPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theVDA5050Package.createPackageContents();
+		theIPos_DatamodelPackage.createPackageContents();
+		theOFBizPackage.createPackageContents();
+		theIPosDevKitPackage.createPackageContents();
+		theToozPackage.createPackageContents();
+		theOSMPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theVDA5050Package.initializePackageContents();
+		theIPos_DatamodelPackage.initializePackageContents();
+		theOFBizPackage.initializePackageContents();
+		theIPosDevKitPackage.initializePackageContents();
+		theToozPackage.initializePackageContents();
+		theOSMPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theVDA5050Package.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(VDA5050Package.eNS_URI, theVDA5050Package);
+		return theVDA5050Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAgvState() {
+		return agvStateEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAgvState_TimeStamp() {
+		return (EAttribute) agvStateEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAgvState_SerialNumber() {
+		return (EAttribute) agvStateEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAgvState_LastNodeId() {
+		return (EAttribute) agvStateEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAgvState_BatteryState() {
+		return (EReference) agvStateEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAgvState_Errors() {
+		return (EReference) agvStateEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAgvState_Agvposition() {
+		return (EReference) agvStateEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAgvState_Loads() {
+		return (EReference) agvStateEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAgvState_Manufacturer() {
+		return (EAttribute) agvStateEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBatteryState() {
+		return batteryStateEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBatteryState_BatteryCharge() {
+		return (EAttribute) batteryStateEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getError() {
+		return errorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getError_ErrorType() {
+		return (EAttribute) errorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAgvPosition() {
+		return agvPositionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAgvPosition_X() {
+		return (EAttribute) agvPositionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAgvPosition_Y() {
+		return (EAttribute) agvPositionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAgvPosition_Theta() {
+		return (EAttribute) agvPositionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAgvPosition_MapId() {
+		return (EAttribute) agvPositionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getLoad() {
+		return loadEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getLoad_LoadId() {
+		return (EAttribute) loadEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VDA5050Factory getVDA5050Factory() {
+		return (VDA5050Factory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		agvStateEClass = createEClass(AGV_STATE);
+		createEAttribute(agvStateEClass, AGV_STATE__TIME_STAMP);
+		createEAttribute(agvStateEClass, AGV_STATE__SERIAL_NUMBER);
+		createEAttribute(agvStateEClass, AGV_STATE__LAST_NODE_ID);
+		createEReference(agvStateEClass, AGV_STATE__BATTERY_STATE);
+		createEReference(agvStateEClass, AGV_STATE__ERRORS);
+		createEReference(agvStateEClass, AGV_STATE__AGVPOSITION);
+		createEReference(agvStateEClass, AGV_STATE__LOADS);
+		createEAttribute(agvStateEClass, AGV_STATE__MANUFACTURER);
+
+		batteryStateEClass = createEClass(BATTERY_STATE);
+		createEAttribute(batteryStateEClass, BATTERY_STATE__BATTERY_CHARGE);
+
+		errorEClass = createEClass(ERROR);
+		createEAttribute(errorEClass, ERROR__ERROR_TYPE);
+
+		agvPositionEClass = createEClass(AGV_POSITION);
+		createEAttribute(agvPositionEClass, AGV_POSITION__X);
+		createEAttribute(agvPositionEClass, AGV_POSITION__Y);
+		createEAttribute(agvPositionEClass, AGV_POSITION__THETA);
+		createEAttribute(agvPositionEClass, AGV_POSITION__MAP_ID);
+
+		loadEClass = createEClass(LOAD);
+		createEAttribute(loadEClass, LOAD__LOAD_ID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(agvStateEClass, AgvState.class, "AgvState", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getAgvState_TimeStamp(), ecorePackage.getEString(), "timeStamp", null, 0, 1, AgvState.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getAgvState_SerialNumber(), ecorePackage.getEString(), "serialNumber", null, 0, 1,
+				AgvState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getAgvState_LastNodeId(), ecorePackage.getEString(), "lastNodeId", null, 0, 1, AgvState.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAgvState_BatteryState(), this.getBatteryState(), null, "batteryState", null, 0, 1,
+				AgvState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAgvState_Errors(), this.getError(), null, "errors", null, 0, -1, AgvState.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAgvState_Agvposition(), this.getAgvPosition(), null, "agvposition", null, 0, 1,
+				AgvState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAgvState_Loads(), this.getLoad(), null, "loads", null, 0, -1, AgvState.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEAttribute(getAgvState_Manufacturer(), ecorePackage.getEString(), "manufacturer", null, 0, 1,
+				AgvState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(batteryStateEClass, BatteryState.class, "BatteryState", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getBatteryState_BatteryCharge(), ecorePackage.getEFloat(), "batteryCharge", null, 0, 1,
+				BatteryState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(errorEClass, ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error.class, "Error",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getError_ErrorType(), ecorePackage.getEString(), "errorType", null, 0, 1,
+				ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(agvPositionEClass, AgvPosition.class, "AgvPosition", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getAgvPosition_X(), ecorePackage.getEFloat(), "x", null, 0, 1, AgvPosition.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getAgvPosition_Y(), ecorePackage.getEFloat(), "y", null, 0, 1, AgvPosition.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getAgvPosition_Theta(), ecorePackage.getEFloat(), "theta", null, 0, 1, AgvPosition.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getAgvPosition_MapId(), ecorePackage.getEString(), "mapId", null, 0, 1, AgvPosition.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(loadEClass, Load.class, "Load", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getLoad_LoadId(), ecorePackage.getEString(), "loadId", null, 0, 1, Load.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+	}
+
+} //VDA5050PackageImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050AdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050AdapterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..85a1c4e60d816e4c1b13494fc2364f91d1584571
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050AdapterFactory.java
@@ -0,0 +1,200 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package
+ * @generated
+ */
+public class VDA5050AdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static VDA5050Package modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VDA5050AdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = VDA5050Package.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VDA5050Switch<Adapter> modelSwitch = new VDA5050Switch<Adapter>() {
+		@Override
+		public Adapter caseAgvState(AgvState object) {
+			return createAgvStateAdapter();
+		}
+
+		@Override
+		public Adapter caseBatteryState(BatteryState object) {
+			return createBatteryStateAdapter();
+		}
+
+		@Override
+		public Adapter caseError(ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error object) {
+			return createErrorAdapter();
+		}
+
+		@Override
+		public Adapter caseAgvPosition(AgvPosition object) {
+			return createAgvPositionAdapter();
+		}
+
+		@Override
+		public Adapter caseLoad(Load object) {
+			return createLoadAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState <em>Agv State</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 ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState
+	 * @generated
+	 */
+	public Adapter createAgvStateAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState <em>Battery State</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 ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState
+	 * @generated
+	 */
+	public Adapter createBatteryStateAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error <em>Error</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 ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error
+	 * @generated
+	 */
+	public Adapter createErrorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition <em>Agv Position</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 ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition
+	 * @generated
+	 */
+	public Adapter createAgvPositionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load <em>Load</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 ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load
+	 * @generated
+	 */
+	public Adapter createLoadAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //VDA5050AdapterFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050Switch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050Switch.java
new file mode 100644
index 0000000000000000000000000000000000000000..571ed372bc3aff07ecfa65e8d8fda1f190905046
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/util/VDA5050Switch.java
@@ -0,0 +1,205 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.AgvState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.BatteryState;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Load;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package
+ * @generated
+ */
+public class VDA5050Switch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static VDA5050Package modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public VDA5050Switch() {
+		if (modelPackage == null) {
+			modelPackage = VDA5050Package.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case VDA5050Package.AGV_STATE: {
+			AgvState agvState = (AgvState) theEObject;
+			T result = caseAgvState(agvState);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case VDA5050Package.BATTERY_STATE: {
+			BatteryState batteryState = (BatteryState) theEObject;
+			T result = caseBatteryState(batteryState);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case VDA5050Package.ERROR: {
+			ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error error = (ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error) theEObject;
+			T result = caseError(error);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case VDA5050Package.AGV_POSITION: {
+			AgvPosition agvPosition = (AgvPosition) theEObject;
+			T result = caseAgvPosition(agvPosition);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case VDA5050Package.LOAD: {
+			Load load = (Load) theEObject;
+			T result = caseLoad(load);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Agv State</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>Agv State</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAgvState(AgvState object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Battery State</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>Battery State</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBatteryState(BatteryState object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Error</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>Error</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseError(ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.Error object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Agv Position</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>Agv Position</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAgvPosition(AgvPosition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Load</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>Load</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLoad(Load object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //VDA5050Switch
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WGS84Point.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WGS84Point.java
index c49c8efa6e78629fd92491fcc14b35c3d876b75a..a229f7b6d394e059fe87247a9c06213a70730aff 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WGS84Point.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WGS84Point.java
@@ -2,8 +2,6 @@
  */
 package ipos.project.DataModellntegration.iPos_Datamodel;
 
-import org.eclipse.emf.ecore.EObject;
-
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>WGS84 Point</b></em>'.
@@ -22,7 +20,7 @@ import org.eclipse.emf.ecore.EObject;
  * @model
  * @generated
  */
-public interface WGS84Point extends EObject {
+public interface WGS84Point extends Point {
 	/**
 	 * Returns the value of the '<em><b>Longitude</b></em>' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModel.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModel.java
index 257eecc0a0f4d2cc8f93c5496fe3594c0a7e8c80..4fbe296f7c72b5416aaa81c26ad427f123de3167 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModel.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/WorldModel.java
@@ -16,7 +16,9 @@ import org.eclipse.emf.ecore.EObject;
  * </p>
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getAgent <em>Agent</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getZonemap <em>Zonemap</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getZoneMap <em>Zone Map</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getPois <em>Pois</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel#getReferenceSystem <em>Reference System</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getWorldModel()
@@ -37,15 +39,39 @@ public interface WorldModel extends EObject {
 	EList<Agent> getAgent();
 
 	/**
-	 * Returns the value of the '<em><b>Zonemap</b></em>' reference list.
+	 * Returns the value of the '<em><b>Zone Map</b></em>' reference list.
 	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneMap}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Zonemap</em>' reference list.
-	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getWorldModel_Zonemap()
+	 * @return the value of the '<em>Zone Map</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getWorldModel_ZoneMap()
 	 * @model
 	 * @generated
 	 */
-	EList<ZoneMap> getZonemap();
+	EList<ZoneMap> getZoneMap();
+
+	/**
+	 * Returns the value of the '<em><b>Pois</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.POI}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Pois</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getWorldModel_Pois()
+	 * @model
+	 * @generated
+	 */
+	EList<POI> getPois();
+
+	/**
+	 * Returns the value of the '<em><b>Reference System</b></em>' reference list.
+	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.ReferenceSystem}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Reference System</em>' reference list.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getWorldModel_ReferenceSystem()
+	 * @model
+	 * @generated
+	 */
+	EList<ReferenceSystem> getReferenceSystem();
 
 } // WorldModel
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Zone.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Zone.java
index fb1489872201c6702e5c22e0f3c752fec6495440..c854e4c93383a4d98ac45e0486ea15ad55b1c34f 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Zone.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Zone.java
@@ -4,6 +4,8 @@ package ipos.project.DataModellntegration.iPos_Datamodel;
 
 import org.eclipse.emf.common.util.EList;
 
+import org.eclipse.emf.ecore.EObject;
+
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Zone</b></em>'.
@@ -14,13 +16,15 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Zone#getSpace <em>Space</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Zone#getName <em>Name</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.Zone#getId <em>Id</em>}</li>
  * </ul>
  *
  * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getZone()
  * @model
  * @generated
  */
-public interface Zone extends ReferenceSystem {
+public interface Zone extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Space</b></em>' containment reference list.
 	 * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.Space}.
@@ -33,4 +37,48 @@ public interface Zone extends ReferenceSystem {
 	 */
 	EList<Space> getSpace();
 
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getZone_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Zone#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Id</em>' attribute.
+	 * @see #setId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getZone_Id()
+	 * @model
+	 * @generated
+	 */
+	String getId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.Zone#getId <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Id</em>' attribute.
+	 * @see #getId()
+	 * @generated
+	 */
+	void setId(String value);
+
 } // Zone
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ZoneDescriptor.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ZoneDescriptor.java
new file mode 100644
index 0000000000000000000000000000000000000000..01999e6cea4f9d67ff2a40aaef3e8e028cc3ebf1
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/ZoneDescriptor.java
@@ -0,0 +1,69 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Zone Descriptor</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor#getZoneId <em>Zone Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor#getNotificationType <em>Notification Type</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getZoneDescriptor()
+ * @model
+ * @generated
+ */
+public interface ZoneDescriptor extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Zone Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Zone Id</em>' attribute.
+	 * @see #setZoneId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getZoneDescriptor_ZoneId()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getZoneId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor#getZoneId <em>Zone Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Zone Id</em>' attribute.
+	 * @see #getZoneId()
+	 * @generated
+	 */
+	void setZoneId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Notification Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Notification Type</em>' attribute.
+	 * @see #setNotificationType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage#getZoneDescriptor_NotificationType()
+	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+	 * @generated
+	 */
+	String getNotificationType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor#getNotificationType <em>Notification Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Notification Type</em>' attribute.
+	 * @see #getNotificationType()
+	 * @generated
+	 */
+	void setNotificationType(String value);
+
+} // ZoneDescriptor
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AbsolutePositionImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AbsolutePositionImpl.java
deleted file mode 100644
index 351398dc9b356edbe9040709ac08155dfbc1a25d..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AbsolutePositionImpl.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
-
-import ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.WGS84Point;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Absolute Position</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AbsolutePositionImpl#getPoint <em>Point</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AbsolutePositionImpl extends PositionImpl implements AbsolutePosition {
-	/**
-	 * The cached value of the '{@link #getPoint() <em>Point</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPoint()
-	 * @generated
-	 * @ordered
-	 */
-	protected WGS84Point point;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AbsolutePositionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.ABSOLUTE_POSITION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WGS84Point getPoint() {
-		if (point != null && point.eIsProxy()) {
-			InternalEObject oldPoint = (InternalEObject) point;
-			point = (WGS84Point) eResolveProxy(oldPoint);
-			if (point != oldPoint) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							IPos_DatamodelPackage.ABSOLUTE_POSITION__POINT, oldPoint, point));
-			}
-		}
-		return point;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WGS84Point basicGetPoint() {
-		return point;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPoint(WGS84Point newPoint) {
-		WGS84Point oldPoint = point;
-		point = newPoint;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.ABSOLUTE_POSITION__POINT,
-					oldPoint, point));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.ABSOLUTE_POSITION__POINT:
-			if (resolve)
-				return getPoint();
-			return basicGetPoint();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.ABSOLUTE_POSITION__POINT:
-			setPoint((WGS84Point) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.ABSOLUTE_POSITION__POINT:
-			setPoint((WGS84Point) null);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.ABSOLUTE_POSITION__POINT:
-			return point != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AbsolutePositionImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AccelerationImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AccelerationImpl.java
index c0caf8b7cb51d72f79e4ba29891bdf580bbcc366..5bfa42b9a1811626739f66143d7f0da1a4969e29 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AccelerationImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AccelerationImpl.java
@@ -5,18 +5,89 @@ package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 import ipos.project.DataModellntegration.iPos_Datamodel.Acceleration;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
 
+import org.eclipse.emf.common.notify.Notification;
+
 import org.eclipse.emf.ecore.EClass;
 
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Acceleration</b></em>'.
  * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AccelerationImpl#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AccelerationImpl#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AccelerationImpl#getZ <em>Z</em>}</li>
+ * </ul>
  *
  * @generated
  */
 public class AccelerationImpl extends MinimalEObjectImpl.Container implements Acceleration {
+	/**
+	 * The default value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float X_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected float x = X_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Y_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected float y = Y_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Z_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected float z = Z_EDEFAULT;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -36,4 +107,166 @@ public class AccelerationImpl extends MinimalEObjectImpl.Container implements Ac
 		return IPos_DatamodelPackage.Literals.ACCELERATION;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getX() {
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setX(float newX) {
+		float oldX = x;
+		x = newX;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.ACCELERATION__X, oldX, x));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getY() {
+		return y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setY(float newY) {
+		float oldY = y;
+		y = newY;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.ACCELERATION__Y, oldY, y));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getZ() {
+		return z;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setZ(float newZ) {
+		float oldZ = z;
+		z = newZ;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.ACCELERATION__Z, oldZ, z));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.ACCELERATION__X:
+			return getX();
+		case IPos_DatamodelPackage.ACCELERATION__Y:
+			return getY();
+		case IPos_DatamodelPackage.ACCELERATION__Z:
+			return getZ();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.ACCELERATION__X:
+			setX((Float) newValue);
+			return;
+		case IPos_DatamodelPackage.ACCELERATION__Y:
+			setY((Float) newValue);
+			return;
+		case IPos_DatamodelPackage.ACCELERATION__Z:
+			setZ((Float) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.ACCELERATION__X:
+			setX(X_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.ACCELERATION__Y:
+			setY(Y_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.ACCELERATION__Z:
+			setZ(Z_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.ACCELERATION__X:
+			return x != X_EDEFAULT;
+		case IPos_DatamodelPackage.ACCELERATION__Y:
+			return y != Y_EDEFAULT;
+		case IPos_DatamodelPackage.ACCELERATION__Z:
+			return z != Z_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (x: ");
+		result.append(x);
+		result.append(", y: ");
+		result.append(y);
+		result.append(", z: ");
+		result.append(z);
+		result.append(')');
+		return result.toString();
+	}
+
 } //AccelerationImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AgentImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AgentImpl.java
index cab8b56563de664008223e542eb236c3fa73871c..eb2dc584ad30946d54a55f9d9864d172c4a95606 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AgentImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AgentImpl.java
@@ -5,8 +5,6 @@ package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 import ipos.project.DataModellntegration.iPos_Datamodel.Agent;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
 import ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject;
-import ipos.project.DataModellntegration.iPos_Datamodel.NetworkInterface;
-import ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor;
 
 import java.util.Collection;
 
@@ -15,7 +13,6 @@ import org.eclipse.emf.common.notify.Notification;
 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;
 
@@ -29,35 +26,13 @@ import org.eclipse.emf.ecore.util.EObjectResolvingEList;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AgentImpl#getName <em>Name</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AgentImpl#getLObject <em>LObject</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AgentImpl#getNetInt <em>Net Int</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AgentImpl#getPSensors <em>PSensors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.AgentImpl#getAgentType <em>Agent Type</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class AgentImpl extends EntityImpl implements Agent {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
 	/**
 	 * The cached value of the '{@link #getLObject() <em>LObject</em>}' reference list.
 	 * <!-- begin-user-doc -->
@@ -69,24 +44,24 @@ public class AgentImpl extends EntityImpl implements Agent {
 	protected EList<LocalizableObject> lObject;
 
 	/**
-	 * The cached value of the '{@link #getNetInt() <em>Net Int</em>}' reference.
+	 * The default value of the '{@link #getAgentType() <em>Agent Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getNetInt()
+	 * @see #getAgentType()
 	 * @generated
 	 * @ordered
 	 */
-	protected NetworkInterface netInt;
+	protected static final String AGENT_TYPE_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getPSensors() <em>PSensors</em>}' reference list.
+	 * The cached value of the '{@link #getAgentType() <em>Agent Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getPSensors()
+	 * @see #getAgentType()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<PositionSensor> pSensors;
+	protected String agentType = AGENT_TYPE_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -107,27 +82,6 @@ public class AgentImpl extends EntityImpl implements Agent {
 		return IPos_DatamodelPackage.Literals.AGENT;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.AGENT__NAME, oldName, name));
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -146,26 +100,8 @@ public class AgentImpl extends EntityImpl implements Agent {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NetworkInterface getNetInt() {
-		if (netInt != null && netInt.eIsProxy()) {
-			InternalEObject oldNetInt = (InternalEObject) netInt;
-			netInt = (NetworkInterface) eResolveProxy(oldNetInt);
-			if (netInt != oldNetInt) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, IPos_DatamodelPackage.AGENT__NET_INT,
-							oldNetInt, netInt));
-			}
-		}
-		return netInt;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface basicGetNetInt() {
-		return netInt;
+	public String getAgentType() {
+		return agentType;
 	}
 
 	/**
@@ -173,25 +109,12 @@ public class AgentImpl extends EntityImpl implements Agent {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setNetInt(NetworkInterface newNetInt) {
-		NetworkInterface oldNetInt = netInt;
-		netInt = newNetInt;
+	public void setAgentType(String newAgentType) {
+		String oldAgentType = agentType;
+		agentType = newAgentType;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.AGENT__NET_INT, oldNetInt,
-					netInt));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<PositionSensor> getPSensors() {
-		if (pSensors == null) {
-			pSensors = new EObjectResolvingEList<PositionSensor>(PositionSensor.class, this,
-					IPos_DatamodelPackage.AGENT__PSENSORS);
-		}
-		return pSensors;
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.AGENT__AGENT_TYPE, oldAgentType,
+					agentType));
 	}
 
 	/**
@@ -202,16 +125,10 @@ public class AgentImpl extends EntityImpl implements Agent {
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.AGENT__NAME:
-			return getName();
 		case IPos_DatamodelPackage.AGENT__LOBJECT:
 			return getLObject();
-		case IPos_DatamodelPackage.AGENT__NET_INT:
-			if (resolve)
-				return getNetInt();
-			return basicGetNetInt();
-		case IPos_DatamodelPackage.AGENT__PSENSORS:
-			return getPSensors();
+		case IPos_DatamodelPackage.AGENT__AGENT_TYPE:
+			return getAgentType();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -225,19 +142,12 @@ public class AgentImpl extends EntityImpl implements Agent {
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.AGENT__NAME:
-			setName((String) newValue);
-			return;
 		case IPos_DatamodelPackage.AGENT__LOBJECT:
 			getLObject().clear();
 			getLObject().addAll((Collection<? extends LocalizableObject>) newValue);
 			return;
-		case IPos_DatamodelPackage.AGENT__NET_INT:
-			setNetInt((NetworkInterface) newValue);
-			return;
-		case IPos_DatamodelPackage.AGENT__PSENSORS:
-			getPSensors().clear();
-			getPSensors().addAll((Collection<? extends PositionSensor>) newValue);
+		case IPos_DatamodelPackage.AGENT__AGENT_TYPE:
+			setAgentType((String) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -251,17 +161,11 @@ public class AgentImpl extends EntityImpl implements Agent {
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.AGENT__NAME:
-			setName(NAME_EDEFAULT);
-			return;
 		case IPos_DatamodelPackage.AGENT__LOBJECT:
 			getLObject().clear();
 			return;
-		case IPos_DatamodelPackage.AGENT__NET_INT:
-			setNetInt((NetworkInterface) null);
-			return;
-		case IPos_DatamodelPackage.AGENT__PSENSORS:
-			getPSensors().clear();
+		case IPos_DatamodelPackage.AGENT__AGENT_TYPE:
+			setAgentType(AGENT_TYPE_EDEFAULT);
 			return;
 		}
 		super.eUnset(featureID);
@@ -275,14 +179,10 @@ public class AgentImpl extends EntityImpl implements Agent {
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.AGENT__NAME:
-			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
 		case IPos_DatamodelPackage.AGENT__LOBJECT:
 			return lObject != null && !lObject.isEmpty();
-		case IPos_DatamodelPackage.AGENT__NET_INT:
-			return netInt != null;
-		case IPos_DatamodelPackage.AGENT__PSENSORS:
-			return pSensors != null && !pSensors.isEmpty();
+		case IPos_DatamodelPackage.AGENT__AGENT_TYPE:
+			return AGENT_TYPE_EDEFAULT == null ? agentType != null : !AGENT_TYPE_EDEFAULT.equals(agentType);
 		}
 		return super.eIsSet(featureID);
 	}
@@ -298,8 +198,8 @@ public class AgentImpl extends EntityImpl implements Agent {
 			return super.toString();
 
 		StringBuilder result = new StringBuilder(super.toString());
-		result.append(" (name: ");
-		result.append(name);
+		result.append(" (agentType: ");
+		result.append(agentType);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AngularRateImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AngularRateImpl.java
deleted file mode 100644
index 7b59bd4c1d13f183026c03310a3922d3dea206d4..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/AngularRateImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
-
-import ipos.project.DataModellntegration.iPos_Datamodel.AngularRate;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Angular Rate</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class AngularRateImpl extends MinimalEObjectImpl.Container implements AngularRate {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AngularRateImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.ANGULAR_RATE;
-	}
-
-} //AngularRateImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/BeaconImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/BeaconImpl.java
index eebdb2446bb178aefb6a1508acfe1434245cb22c..3835e0e43d4dcce2d1d2c1865b6e75706ddffece 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/BeaconImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/BeaconImpl.java
@@ -23,11 +23,12 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.BeaconImpl#getDistances <em>Distances</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.BeaconImpl#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.BeaconImpl#getSensorId <em>Sensor Id</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class BeaconImpl extends RawdataImpl implements Beacon {
+public class BeaconImpl extends RawdataEventImpl implements Beacon {
 	/**
 	 * The cached value of the '{@link #getDistances() <em>Distances</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -36,7 +37,7 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 	 * @generated
 	 * @ordered
 	 */
-	protected Map<String, Integer> distances;
+	protected Map<String, Double> distances;
 
 	/**
 	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
@@ -58,6 +59,26 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 	 */
 	protected String type = TYPE_EDEFAULT;
 
+	/**
+	 * The default value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorId = SENSOR_ID_EDEFAULT;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -82,7 +103,7 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Map<String, Integer> getDistances() {
+	public Map<String, Double> getDistances() {
 		return distances;
 	}
 
@@ -91,8 +112,8 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setDistances(Map<String, Integer> newDistances) {
-		Map<String, Integer> oldDistances = distances;
+	public void setDistances(Map<String, Double> newDistances) {
+		Map<String, Double> oldDistances = distances;
 		distances = newDistances;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.BEACON__DISTANCES, oldDistances,
@@ -120,6 +141,28 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.BEACON__TYPE, oldType, type));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorId() {
+		return sensorId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorId(String newSensorId) {
+		String oldSensorId = sensorId;
+		sensorId = newSensorId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.BEACON__SENSOR_ID, oldSensorId,
+					sensorId));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -132,6 +175,8 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 			return getDistances();
 		case IPos_DatamodelPackage.BEACON__TYPE:
 			return getType();
+		case IPos_DatamodelPackage.BEACON__SENSOR_ID:
+			return getSensorId();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -146,11 +191,14 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.BEACON__DISTANCES:
-			setDistances((Map<String, Integer>) newValue);
+			setDistances((Map<String, Double>) newValue);
 			return;
 		case IPos_DatamodelPackage.BEACON__TYPE:
 			setType((String) newValue);
 			return;
+		case IPos_DatamodelPackage.BEACON__SENSOR_ID:
+			setSensorId((String) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -164,11 +212,14 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 	public void eUnset(int featureID) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.BEACON__DISTANCES:
-			setDistances((Map<String, Integer>) null);
+			setDistances((Map<String, Double>) null);
 			return;
 		case IPos_DatamodelPackage.BEACON__TYPE:
 			setType(TYPE_EDEFAULT);
 			return;
+		case IPos_DatamodelPackage.BEACON__SENSOR_ID:
+			setSensorId(SENSOR_ID_EDEFAULT);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -185,6 +236,8 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 			return distances != null;
 		case IPos_DatamodelPackage.BEACON__TYPE:
 			return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+		case IPos_DatamodelPackage.BEACON__SENSOR_ID:
+			return SENSOR_ID_EDEFAULT == null ? sensorId != null : !SENSOR_ID_EDEFAULT.equals(sensorId);
 		}
 		return super.eIsSet(featureID);
 	}
@@ -204,6 +257,8 @@ public class BeaconImpl extends RawdataImpl implements Beacon {
 		result.append(distances);
 		result.append(", type: ");
 		result.append(type);
+		result.append(", sensorId: ");
+		result.append(sensorId);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/BluetoothImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/BluetoothImpl.java
index 5e060bca1a9a05d5d5f4252d813294656384d40f..73493a86dd0de43c7127602275456d9cd501c70b 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/BluetoothImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/BluetoothImpl.java
@@ -35,7 +35,7 @@ public class BluetoothImpl extends BeaconImpl implements Bluetooth {
 	 * @generated
 	 * @ordered
 	 */
-	protected Map<String, Integer> rss;
+	protected Map<String, Double> rss;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -61,7 +61,7 @@ public class BluetoothImpl extends BeaconImpl implements Bluetooth {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Map<String, Integer> getRss() {
+	public Map<String, Double> getRss() {
 		return rss;
 	}
 
@@ -70,8 +70,8 @@ public class BluetoothImpl extends BeaconImpl implements Bluetooth {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setRss(Map<String, Integer> newRss) {
-		Map<String, Integer> oldRss = rss;
+	public void setRss(Map<String, Double> newRss) {
+		Map<String, Double> oldRss = rss;
 		rss = newRss;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.BLUETOOTH__RSS, oldRss, rss));
@@ -101,7 +101,7 @@ public class BluetoothImpl extends BeaconImpl implements Bluetooth {
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.BLUETOOTH__RSS:
-			setRss((Map<String, Integer>) newValue);
+			setRss((Map<String, Double>) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -116,7 +116,7 @@ public class BluetoothImpl extends BeaconImpl implements Bluetooth {
 	public void eUnset(int featureID) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.BLUETOOTH__RSS:
-			setRss((Map<String, Integer>) null);
+			setRss((Map<String, Double>) null);
 			return;
 		}
 		super.eUnset(featureID);
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/DataStorageQueryRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/DataStorageQueryRequestImpl.java
deleted file mode 100644
index 5ae52a5efe39d208fc982f227939081380e47045..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/DataStorageQueryRequestImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
-
-import ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryRequest;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Data Storage Query Request</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class DataStorageQueryRequestImpl extends MinimalEObjectImpl.Container implements DataStorageQueryRequest {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DataStorageQueryRequestImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.DATA_STORAGE_QUERY_REQUEST;
-	}
-
-} //DataStorageQueryRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/DataStorageQueryResponseImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/DataStorageQueryResponseImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..fe29bac5c50ec24a8fae557adb6a1161ab6251a6
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/DataStorageQueryResponseImpl.java
@@ -0,0 +1,210 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Storage Query Response</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryResponseImpl#getPositionEvents <em>Position Events</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.DataStorageQueryResponseImpl#getTrackingTaskId <em>Tracking Task Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DataStorageQueryResponseImpl extends MinimalEObjectImpl.Container implements DataStorageQueryResponse {
+	/**
+	 * The cached value of the '{@link #getPositionEvents() <em>Position Events</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPositionEvents()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<PositionEvent> positionEvents;
+
+	/**
+	 * The default value of the '{@link #getTrackingTaskId() <em>Tracking Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrackingTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TRACKING_TASK_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTrackingTaskId() <em>Tracking Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrackingTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String trackingTaskId = TRACKING_TASK_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataStorageQueryResponseImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPos_DatamodelPackage.Literals.DATA_STORAGE_QUERY_RESPONSE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<PositionEvent> getPositionEvents() {
+		if (positionEvents == null) {
+			positionEvents = new EObjectResolvingEList<PositionEvent>(PositionEvent.class, this,
+					IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__POSITION_EVENTS);
+		}
+		return positionEvents;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTrackingTaskId() {
+		return trackingTaskId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTrackingTaskId(String newTrackingTaskId) {
+		String oldTrackingTaskId = trackingTaskId;
+		trackingTaskId = newTrackingTaskId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID, oldTrackingTaskId,
+					trackingTaskId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__POSITION_EVENTS:
+			return getPositionEvents();
+		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID:
+			return getTrackingTaskId();
+		}
+		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 IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__POSITION_EVENTS:
+			getPositionEvents().clear();
+			getPositionEvents().addAll((Collection<? extends PositionEvent>) newValue);
+			return;
+		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID:
+			setTrackingTaskId((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__POSITION_EVENTS:
+			getPositionEvents().clear();
+			return;
+		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID:
+			setTrackingTaskId(TRACKING_TASK_ID_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__POSITION_EVENTS:
+			return positionEvents != null && !positionEvents.isEmpty();
+		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID:
+			return TRACKING_TASK_ID_EDEFAULT == null ? trackingTaskId != null
+					: !TRACKING_TASK_ID_EDEFAULT.equals(trackingTaskId);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (trackingTaskId: ");
+		result.append(trackingTaskId);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataStorageQueryResponseImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/EventFilterConditionImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/EventFilterConditionImpl.java
index ba1ffcb7c279ff27ca3416ebc088df25e96da744..efe5d185c0e47b6fa84501c7389459b36a01fa66 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/EventFilterConditionImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/EventFilterConditionImpl.java
@@ -3,11 +3,11 @@
 package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelFactory;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.emf.common.notify.Notification;
 
@@ -25,15 +25,16 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
  * </p>
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getTimeCondition <em>Time Condition</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getCategoryCondition <em>Category Condition</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getIdCondition <em>Id Condition</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getAccuracyCondition <em>Accuracy Condition</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getPositionCondition <em>Position Condition</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getTimeMinInterval <em>Time Min Interval</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getPositionDelta <em>Position Delta</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getSensorIdCondition <em>Sensor Id Condition</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getFilterStructure <em>Filter Structure</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getPositionConditionCell <em>Position Condition Cell</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getPositionConditionCells <em>Position Condition Cells</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getIdCondition <em>Id Condition</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getCategoryCondition <em>Category Condition</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.EventFilterConditionImpl#getPropertyCondition <em>Property Condition</em>}</li>
  * </ul>
  *
  * @generated
@@ -59,46 +60,6 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 	 */
 	protected ArrayList<String[]> timeCondition = TIME_CONDITION_EDEFAULT;
 
-	/**
-	 * The default value of the '{@link #getCategoryCondition() <em>Category Condition</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCategoryCondition()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final List<String> CATEGORY_CONDITION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getCategoryCondition() <em>Category Condition</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCategoryCondition()
-	 * @generated
-	 * @ordered
-	 */
-	protected List<String> categoryCondition = CATEGORY_CONDITION_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getIdCondition() <em>Id Condition</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIdCondition()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final List<String> ID_CONDITION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getIdCondition() <em>Id Condition</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIdCondition()
-	 * @generated
-	 * @ordered
-	 */
-	protected List<String> idCondition = ID_CONDITION_EDEFAULT;
-
 	/**
 	 * The default value of the '{@link #getAccuracyCondition() <em>Accuracy Condition</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -220,73 +181,82 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 	protected boolean[] filterStructure = FILTER_STRUCTURE_EDEFAULT;
 
 	/**
-	 * The default value of the '{@link #getPositionConditionCell() <em>Position Condition Cell</em>}' attribute.
+	 * The cached value of the '{@link #getPositionConditionCells() <em>Position Condition Cells</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getPositionConditionCell()
+	 * @see #getPositionConditionCells()
 	 * @generated
 	 * @ordered
 	 */
-	protected static final ArrayList<Float[][]> POSITION_CONDITION_CELL_EDEFAULT = null;
+	protected Map<String, ArrayList<Float[][]>> positionConditionCells;
 
 	/**
-	 * The cached value of the '{@link #getPositionConditionCell() <em>Position Condition Cell</em>}' attribute.
+	 * The default value of the '{@link #getIdCondition() <em>Id Condition</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getPositionConditionCell()
+	 * @see #getIdCondition()
 	 * @generated
 	 * @ordered
 	 */
-	protected ArrayList<Float[][]> positionConditionCell = POSITION_CONDITION_CELL_EDEFAULT;
+	protected static final List<String> ID_CONDITION_EDEFAULT = null;
 
 	/**
+	 * The cached value of the '{@link #getIdCondition() <em>Id Condition</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see #getIdCondition()
 	 * @generated
+	 * @ordered
 	 */
-	protected EventFilterConditionImpl() {
-		super();
-	}
+	protected List<String> idCondition = ID_CONDITION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCategoryCondition() <em>Category Condition</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCategoryCondition()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final List<String> CATEGORY_CONDITION_EDEFAULT = null;
 
 	/**
+	 * The cached value of the '{@link #getCategoryCondition() <em>Category Condition</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see #getCategoryCondition()
 	 * @generated
+	 * @ordered
 	 */
-	@Override
-	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.EVENT_FILTER_CONDITION;
-	}
+	protected List<String> categoryCondition = CATEGORY_CONDITION_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getPropertyCondition() <em>Property Condition</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see #getPropertyCondition()
 	 * @generated
+	 * @ordered
 	 */
-	public ArrayList<String[]> getTimeCondition() {
-		return timeCondition;
-	}
+	protected static final List<String> PROPERTY_CONDITION_EDEFAULT = null;
 
 	/**
+	 * The cached value of the '{@link #getPropertyCondition() <em>Property Condition</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see #getPropertyCondition()
 	 * @generated
+	 * @ordered
 	 */
-	public void setTimeCondition(ArrayList<String[]> newTimeCondition) {
-		ArrayList<String[]> oldTimeCondition = timeCondition;
-		timeCondition = newTimeCondition;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					IPos_DatamodelPackage.EVENT_FILTER_CONDITION__TIME_CONDITION, oldTimeCondition, timeCondition));
-	}
+	protected List<String> propertyCondition = PROPERTY_CONDITION_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public List<String> getCategoryCondition() {
-		return categoryCondition;
+	protected EventFilterConditionImpl() {
+		super();
 	}
 
 	/**
@@ -294,13 +264,9 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setCategoryCondition(List<String> newCategoryCondition) {
-		List<String> oldCategoryCondition = categoryCondition;
-		categoryCondition = newCategoryCondition;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION, oldCategoryCondition,
-					categoryCondition));
+	@Override
+	protected EClass eStaticClass() {
+		return IPos_DatamodelPackage.Literals.EVENT_FILTER_CONDITION;
 	}
 
 	/**
@@ -308,8 +274,8 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public List<String> getIdCondition() {
-		return idCondition;
+	public ArrayList<String[]> getTimeCondition() {
+		return timeCondition;
 	}
 
 	/**
@@ -317,12 +283,12 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setIdCondition(List<String> newIdCondition) {
-		List<String> oldIdCondition = idCondition;
-		idCondition = newIdCondition;
+	public void setTimeCondition(ArrayList<String[]> newTimeCondition) {
+		ArrayList<String[]> oldTimeCondition = timeCondition;
+		timeCondition = newTimeCondition;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET,
-					IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION, oldIdCondition, idCondition));
+					IPos_DatamodelPackage.EVENT_FILTER_CONDITION__TIME_CONDITION, oldTimeCondition, timeCondition));
 	}
 
 	/**
@@ -467,8 +433,8 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ArrayList<Float[][]> getPositionConditionCell() {
-		return positionConditionCell;
+	public Map<String, ArrayList<Float[][]>> getPositionConditionCells() {
+		return positionConditionCells;
 	}
 
 	/**
@@ -476,13 +442,81 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setPositionConditionCell(ArrayList<Float[][]> newPositionConditionCell) {
-		ArrayList<Float[][]> oldPositionConditionCell = positionConditionCell;
-		positionConditionCell = newPositionConditionCell;
+	public void setPositionConditionCells(Map<String, ArrayList<Float[][]>> newPositionConditionCells) {
+		Map<String, ArrayList<Float[][]>> oldPositionConditionCells = positionConditionCells;
+		positionConditionCells = newPositionConditionCells;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET,
-					IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELL, oldPositionConditionCell,
-					positionConditionCell));
+					IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELLS, oldPositionConditionCells,
+					positionConditionCells));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<String> getIdCondition() {
+		return idCondition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdCondition(List<String> newIdCondition) {
+		List<String> oldIdCondition = idCondition;
+		idCondition = newIdCondition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION, oldIdCondition, idCondition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<String> getCategoryCondition() {
+		return categoryCondition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCategoryCondition(List<String> newCategoryCondition) {
+		List<String> oldCategoryCondition = categoryCondition;
+		categoryCondition = newCategoryCondition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION, oldCategoryCondition,
+					categoryCondition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List<String> getPropertyCondition() {
+		return propertyCondition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPropertyCondition(List<String> newPropertyCondition) {
+		List<String> oldPropertyCondition = propertyCondition;
+		propertyCondition = newPropertyCondition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.EVENT_FILTER_CONDITION__PROPERTY_CONDITION, oldPropertyCondition,
+					propertyCondition));
 	}
 
 	/**
@@ -495,10 +529,6 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 		switch (featureID) {
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__TIME_CONDITION:
 			return getTimeCondition();
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION:
-			return getCategoryCondition();
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION:
-			return getIdCondition();
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ACCURACY_CONDITION:
 			return getAccuracyCondition();
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION:
@@ -511,8 +541,14 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 			return getSensorIdCondition();
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__FILTER_STRUCTURE:
 			return getFilterStructure();
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELL:
-			return getPositionConditionCell();
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELLS:
+			return getPositionConditionCells();
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION:
+			return getIdCondition();
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION:
+			return getCategoryCondition();
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__PROPERTY_CONDITION:
+			return getPropertyCondition();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -529,12 +565,6 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__TIME_CONDITION:
 			setTimeCondition((ArrayList<String[]>) newValue);
 			return;
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION:
-			setCategoryCondition((List<String>) newValue);
-			return;
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION:
-			setIdCondition((List<String>) newValue);
-			return;
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ACCURACY_CONDITION:
 			setAccuracyCondition((Float) newValue);
 			return;
@@ -553,8 +583,17 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__FILTER_STRUCTURE:
 			setFilterStructure((boolean[]) newValue);
 			return;
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELL:
-			setPositionConditionCell((ArrayList<Float[][]>) newValue);
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELLS:
+			setPositionConditionCells((Map<String, ArrayList<Float[][]>>) newValue);
+			return;
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION:
+			setIdCondition((List<String>) newValue);
+			return;
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION:
+			setCategoryCondition((List<String>) newValue);
+			return;
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__PROPERTY_CONDITION:
+			setPropertyCondition((List<String>) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -571,12 +610,6 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__TIME_CONDITION:
 			setTimeCondition(TIME_CONDITION_EDEFAULT);
 			return;
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION:
-			setCategoryCondition(CATEGORY_CONDITION_EDEFAULT);
-			return;
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION:
-			setIdCondition(ID_CONDITION_EDEFAULT);
-			return;
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ACCURACY_CONDITION:
 			setAccuracyCondition(ACCURACY_CONDITION_EDEFAULT);
 			return;
@@ -595,8 +628,17 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__FILTER_STRUCTURE:
 			setFilterStructure(FILTER_STRUCTURE_EDEFAULT);
 			return;
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELL:
-			setPositionConditionCell(POSITION_CONDITION_CELL_EDEFAULT);
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELLS:
+			setPositionConditionCells((Map<String, ArrayList<Float[][]>>) null);
+			return;
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION:
+			setIdCondition(ID_CONDITION_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION:
+			setCategoryCondition(CATEGORY_CONDITION_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__PROPERTY_CONDITION:
+			setPropertyCondition(PROPERTY_CONDITION_EDEFAULT);
 			return;
 		}
 		super.eUnset(featureID);
@@ -613,11 +655,6 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__TIME_CONDITION:
 			return TIME_CONDITION_EDEFAULT == null ? timeCondition != null
 					: !TIME_CONDITION_EDEFAULT.equals(timeCondition);
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION:
-			return CATEGORY_CONDITION_EDEFAULT == null ? categoryCondition != null
-					: !CATEGORY_CONDITION_EDEFAULT.equals(categoryCondition);
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION:
-			return ID_CONDITION_EDEFAULT == null ? idCondition != null : !ID_CONDITION_EDEFAULT.equals(idCondition);
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ACCURACY_CONDITION:
 			return accuracyCondition != ACCURACY_CONDITION_EDEFAULT;
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION:
@@ -633,9 +670,16 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__FILTER_STRUCTURE:
 			return FILTER_STRUCTURE_EDEFAULT == null ? filterStructure != null
 					: !FILTER_STRUCTURE_EDEFAULT.equals(filterStructure);
-		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELL:
-			return POSITION_CONDITION_CELL_EDEFAULT == null ? positionConditionCell != null
-					: !POSITION_CONDITION_CELL_EDEFAULT.equals(positionConditionCell);
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__POSITION_CONDITION_CELLS:
+			return positionConditionCells != null;
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__ID_CONDITION:
+			return ID_CONDITION_EDEFAULT == null ? idCondition != null : !ID_CONDITION_EDEFAULT.equals(idCondition);
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__CATEGORY_CONDITION:
+			return CATEGORY_CONDITION_EDEFAULT == null ? categoryCondition != null
+					: !CATEGORY_CONDITION_EDEFAULT.equals(categoryCondition);
+		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION__PROPERTY_CONDITION:
+			return PROPERTY_CONDITION_EDEFAULT == null ? propertyCondition != null
+					: !PROPERTY_CONDITION_EDEFAULT.equals(propertyCondition);
 		}
 		return super.eIsSet(featureID);
 	}
@@ -653,10 +697,6 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (timeCondition: ");
 		result.append(timeCondition);
-		result.append(", categoryCondition: ");
-		result.append(categoryCondition);
-		result.append(", idCondition: ");
-		result.append(idCondition);
 		result.append(", accuracyCondition: ");
 		result.append(accuracyCondition);
 		result.append(", positionCondition: ");
@@ -669,8 +709,14 @@ public class EventFilterConditionImpl extends MinimalEObjectImpl.Container imple
 		result.append(sensorIdCondition);
 		result.append(", filterStructure: ");
 		result.append(filterStructure);
-		result.append(", positionConditionCell: ");
-		result.append(positionConditionCell);
+		result.append(", positionConditionCells: ");
+		result.append(positionConditionCells);
+		result.append(", idCondition: ");
+		result.append(idCondition);
+		result.append(", categoryCondition: ");
+		result.append(categoryCondition);
+		result.append(", propertyCondition: ");
+		result.append(propertyCondition);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/EventFilterConfigurationImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/EventFilterConfigurationImpl.java
index dff71e1af62b26c8a9a39ac1c68b592eda5cfd68..5c97820d652304ddc106f6343bb5f4110cdcf726 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/EventFilterConfigurationImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/EventFilterConfigurationImpl.java
@@ -2,10 +2,10 @@
  */
 package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
-import ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition;
 import ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
 
+import ipos.project.DataModellntegration.iPos_Datamodel.TrackingTask;
 import java.util.Collection;
 import java.util.Map;
 
@@ -86,7 +86,7 @@ public class EventFilterConfigurationImpl extends MinimalEObjectImpl.Container i
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<EventFilterCondition> eventfiltercondition;
+	protected EList<TrackingTask> eventfiltercondition;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -181,9 +181,9 @@ public class EventFilterConfigurationImpl extends MinimalEObjectImpl.Container i
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EList<EventFilterCondition> getEventfiltercondition() {
+	public EList<TrackingTask> getEventfiltercondition() {
 		if (eventfiltercondition == null) {
-			eventfiltercondition = new EObjectResolvingEList<EventFilterCondition>(EventFilterCondition.class, this,
+			eventfiltercondition = new EObjectResolvingEList<TrackingTask>(TrackingTask.class, this,
 					IPos_DatamodelPackage.EVENT_FILTER_CONFIGURATION__EVENTFILTERCONDITION);
 		}
 		return eventfiltercondition;
@@ -229,7 +229,7 @@ public class EventFilterConfigurationImpl extends MinimalEObjectImpl.Container i
 			return;
 		case IPos_DatamodelPackage.EVENT_FILTER_CONFIGURATION__EVENTFILTERCONDITION:
 			getEventfiltercondition().clear();
-			getEventfiltercondition().addAll((Collection<? extends EventFilterCondition>) newValue);
+			getEventfiltercondition().addAll((Collection<? extends TrackingTask>) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IMUImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IMUImpl.java
index 296edc007eea1008dabc41eae055bc6b4f791994..774e5906e891669260432083438691ad30ddaf6d 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IMUImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IMUImpl.java
@@ -3,9 +3,9 @@
 package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.Acceleration;
-import ipos.project.DataModellntegration.iPos_Datamodel.AngularRate;
 import ipos.project.DataModellntegration.iPos_Datamodel.IMU;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.Quaternion;
 
 import org.eclipse.emf.common.notify.Notification;
 
@@ -24,11 +24,12 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.IMUImpl#getAngularrate <em>Angularrate</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.IMUImpl#getAcceleration <em>Acceleration</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.IMUImpl#getSensorId <em>Sensor Id</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class IMUImpl extends RawdataImpl implements IMU {
+public class IMUImpl extends RawdataEventImpl implements IMU {
 	/**
 	 * The cached value of the '{@link #getAngularrate() <em>Angularrate</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -37,7 +38,7 @@ public class IMUImpl extends RawdataImpl implements IMU {
 	 * @generated
 	 * @ordered
 	 */
-	protected AngularRate angularrate;
+	protected Quaternion angularrate;
 
 	/**
 	 * The cached value of the '{@link #getAcceleration() <em>Acceleration</em>}' reference.
@@ -49,6 +50,26 @@ public class IMUImpl extends RawdataImpl implements IMU {
 	 */
 	protected Acceleration acceleration;
 
+	/**
+	 * The default value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorId = SENSOR_ID_EDEFAULT;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -73,10 +94,10 @@ public class IMUImpl extends RawdataImpl implements IMU {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AngularRate getAngularrate() {
+	public Quaternion getAngularrate() {
 		if (angularrate != null && angularrate.eIsProxy()) {
 			InternalEObject oldAngularrate = (InternalEObject) angularrate;
-			angularrate = (AngularRate) eResolveProxy(oldAngularrate);
+			angularrate = (Quaternion) eResolveProxy(oldAngularrate);
 			if (angularrate != oldAngularrate) {
 				if (eNotificationRequired())
 					eNotify(new ENotificationImpl(this, Notification.RESOLVE, IPos_DatamodelPackage.IMU__ANGULARRATE,
@@ -91,7 +112,7 @@ public class IMUImpl extends RawdataImpl implements IMU {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AngularRate basicGetAngularrate() {
+	public Quaternion basicGetAngularrate() {
 		return angularrate;
 	}
 
@@ -100,8 +121,8 @@ public class IMUImpl extends RawdataImpl implements IMU {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setAngularrate(AngularRate newAngularrate) {
-		AngularRate oldAngularrate = angularrate;
+	public void setAngularrate(Quaternion newAngularrate) {
+		Quaternion oldAngularrate = angularrate;
 		angularrate = newAngularrate;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.IMU__ANGULARRATE,
@@ -148,6 +169,28 @@ public class IMUImpl extends RawdataImpl implements IMU {
 					oldAcceleration, acceleration));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorId() {
+		return sensorId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorId(String newSensorId) {
+		String oldSensorId = sensorId;
+		sensorId = newSensorId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.IMU__SENSOR_ID, oldSensorId,
+					sensorId));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -164,6 +207,8 @@ public class IMUImpl extends RawdataImpl implements IMU {
 			if (resolve)
 				return getAcceleration();
 			return basicGetAcceleration();
+		case IPos_DatamodelPackage.IMU__SENSOR_ID:
+			return getSensorId();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -177,11 +222,14 @@ public class IMUImpl extends RawdataImpl implements IMU {
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.IMU__ANGULARRATE:
-			setAngularrate((AngularRate) newValue);
+			setAngularrate((Quaternion) newValue);
 			return;
 		case IPos_DatamodelPackage.IMU__ACCELERATION:
 			setAcceleration((Acceleration) newValue);
 			return;
+		case IPos_DatamodelPackage.IMU__SENSOR_ID:
+			setSensorId((String) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -195,11 +243,14 @@ public class IMUImpl extends RawdataImpl implements IMU {
 	public void eUnset(int featureID) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.IMU__ANGULARRATE:
-			setAngularrate((AngularRate) null);
+			setAngularrate((Quaternion) null);
 			return;
 		case IPos_DatamodelPackage.IMU__ACCELERATION:
 			setAcceleration((Acceleration) null);
 			return;
+		case IPos_DatamodelPackage.IMU__SENSOR_ID:
+			setSensorId(SENSOR_ID_EDEFAULT);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -216,8 +267,27 @@ public class IMUImpl extends RawdataImpl implements IMU {
 			return angularrate != null;
 		case IPos_DatamodelPackage.IMU__ACCELERATION:
 			return acceleration != null;
+		case IPos_DatamodelPackage.IMU__SENSOR_ID:
+			return SENSOR_ID_EDEFAULT == null ? sensorId != null : !SENSOR_ID_EDEFAULT.equals(sensorId);
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (sensorId: ");
+		result.append(sensorId);
+		result.append(')');
+		return result.toString();
+	}
+
 } //IMUImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java
index ae77213762830574dbd3807475ca09381bb89b70..9813f0d08fa8b7cdd6e960ede6b33415657b3477 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java
@@ -5,6 +5,8 @@ package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 import ipos.project.DataModellntegration.iPos_Datamodel.*;
 
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 
 import org.eclipse.emf.ecore.EClass;
@@ -66,18 +68,12 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 			return createEntity();
 		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT:
 			return createLocalizableObject();
-		case IPos_DatamodelPackage.POSITION_SENSOR:
-			return createPositionSensor();
 		case IPos_DatamodelPackage.PLACING:
 			return createPlacing();
 		case IPos_DatamodelPackage.POSITION:
 			return createPosition();
 		case IPos_DatamodelPackage.ORIENTATION:
 			return createOrientation();
-		case IPos_DatamodelPackage.ABSOLUTE_POSITION:
-			return createAbsolutePosition();
-		case IPos_DatamodelPackage.RELATIVE_POSITION:
-			return createRelativePosition();
 		case IPos_DatamodelPackage.WGS84_POINT:
 			return createWGS84Point();
 		case IPos_DatamodelPackage.ACCURACY:
@@ -96,14 +92,14 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 			return createSpace();
 		case IPos_DatamodelPackage.MAP_TYPE:
 			return createMapType();
-		case IPos_DatamodelPackage.NETWORK_INTERFACE:
-			return createNetworkInterface();
 		case IPos_DatamodelPackage.QUATERNION:
 			return createQuaternion();
 		case IPos_DatamodelPackage.GAUSSIAN:
 			return createGaussian();
 		case IPos_DatamodelPackage.POINT:
 			return createPoint();
+		case IPos_DatamodelPackage.RAWDATA_EVENT:
+			return createRawdataEvent();
 		case IPos_DatamodelPackage.PROXIMITY:
 			return createProximity();
 		case IPos_DatamodelPackage.RFID:
@@ -112,32 +108,14 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 			return createNFC();
 		case IPos_DatamodelPackage.IMU:
 			return createIMU();
-		case IPos_DatamodelPackage.ANGULAR_RATE:
-			return createAngularRate();
 		case IPos_DatamodelPackage.ACCELERATION:
 			return createAcceleration();
 		case IPos_DatamodelPackage.BEACON:
 			return createBeacon();
 		case IPos_DatamodelPackage.POSITION_EVENT:
 			return createPositionEvent();
-		case IPos_DatamodelPackage.RAWDATA_EVENT:
-			return createRawdataEvent();
-		case IPos_DatamodelPackage.TRACKING_REQUEST:
-			return createTrackingRequest();
-		case IPos_DatamodelPackage.MONITORING_REQUEST:
-			return createMonitoringRequest();
-		case IPos_DatamodelPackage.WORLD_MODEL_UPDATE_REQUEST:
-			return createWorldModelUpdateRequest();
-		case IPos_DatamodelPackage.DATA_STORAGE_REQUEST:
-			return createDataStorageRequest();
 		case IPos_DatamodelPackage.EVENT_FILTER_CONFIGURATION:
 			return createEventFilterConfiguration();
-		case IPos_DatamodelPackage.WORLD_MODEL_QUERY_REQUEST:
-			return createWorldModelQueryRequest();
-		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_REQUEST:
-			return createDataStorageQueryRequest();
-		case IPos_DatamodelPackage.AGENT_REGISTRATION_REQUEST:
-			return createAgentRegistrationRequest();
 		case IPos_DatamodelPackage.MONITORING_TASK:
 			return createMonitoringTask();
 		case IPos_DatamodelPackage.TRACKING_TASK:
@@ -152,14 +130,18 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 			return createBluetooth();
 		case IPos_DatamodelPackage.UWB:
 			return createUWB();
-		case IPos_DatamodelPackage.SENSOR_CONFIGURATION_REQUEST:
-			return createSensorConfigurationRequest();
 		case IPos_DatamodelPackage.OTHER_BEACON:
 			return createOtherBeacon();
-		case IPos_DatamodelPackage.REFERENCE_POSITION:
-			return createReferencePosition();
+		case IPos_DatamodelPackage.POI:
+			return createPOI();
 		case IPos_DatamodelPackage.EVENT_FILTER_CONDITION:
 			return createEventFilterCondition();
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR:
+			return createZoneDescriptor();
+		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE:
+			return createDataStorageQueryResponse();
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT:
+			return createMessageReceivedEvent();
 		default:
 			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -183,6 +165,12 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 			return createBooleanListFromString(eDataType, initialValue);
 		case IPos_DatamodelPackage.FLOAT_ARRAY:
 			return createFloatArrayFromString(eDataType, initialValue);
+		case IPos_DatamodelPackage.BYTE_ARRAY:
+			return createByteArrayFromString(eDataType, initialValue);
+		case IPos_DatamodelPackage.LIST_OF_STRING_MAPS:
+			return createListOfStringMapsFromString(eDataType, initialValue);
+		case IPos_DatamodelPackage.INT_ARRAY:
+			return createIntArrayFromString(eDataType, initialValue);
 		default:
 			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
 		}
@@ -206,6 +194,12 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 			return convertBooleanListToString(eDataType, instanceValue);
 		case IPos_DatamodelPackage.FLOAT_ARRAY:
 			return convertFloatArrayToString(eDataType, instanceValue);
+		case IPos_DatamodelPackage.BYTE_ARRAY:
+			return convertByteArrayToString(eDataType, instanceValue);
+		case IPos_DatamodelPackage.LIST_OF_STRING_MAPS:
+			return convertListOfStringMapsToString(eDataType, instanceValue);
+		case IPos_DatamodelPackage.INT_ARRAY:
+			return convertIntArrayToString(eDataType, instanceValue);
 		default:
 			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
 		}
@@ -241,16 +235,6 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 		return localizableObject;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PositionSensor createPositionSensor() {
-		PositionSensorImpl positionSensor = new PositionSensorImpl();
-		return positionSensor;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -281,26 +265,6 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 		return orientation;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AbsolutePosition createAbsolutePosition() {
-		AbsolutePositionImpl absolutePosition = new AbsolutePositionImpl();
-		return absolutePosition;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public RelativePosition createRelativePosition() {
-		RelativePositionImpl relativePosition = new RelativePositionImpl();
-		return relativePosition;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -391,16 +355,6 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 		return mapType;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NetworkInterface createNetworkInterface() {
-		NetworkInterfaceImpl networkInterface = new NetworkInterfaceImpl();
-		return networkInterface;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -431,6 +385,16 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 		return point;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RawdataEvent createRawdataEvent() {
+		RawdataEventImpl rawdataEvent = new RawdataEventImpl();
+		return rawdataEvent;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -471,16 +435,6 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 		return imu;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AngularRate createAngularRate() {
-		AngularRateImpl angularRate = new AngularRateImpl();
-		return angularRate;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -516,9 +470,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public RawdataEvent createRawdataEvent() {
-		RawdataEventImpl rawdataEvent = new RawdataEventImpl();
-		return rawdataEvent;
+	public EventFilterConfiguration createEventFilterConfiguration() {
+		EventFilterConfigurationImpl eventFilterConfiguration = new EventFilterConfigurationImpl();
+		return eventFilterConfiguration;
 	}
 
 	/**
@@ -526,9 +480,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public TrackingRequest createTrackingRequest() {
-		TrackingRequestImpl trackingRequest = new TrackingRequestImpl();
-		return trackingRequest;
+	public MonitoringTask createMonitoringTask() {
+		MonitoringTaskImpl monitoringTask = new MonitoringTaskImpl();
+		return monitoringTask;
 	}
 
 	/**
@@ -536,9 +490,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public MonitoringRequest createMonitoringRequest() {
-		MonitoringRequestImpl monitoringRequest = new MonitoringRequestImpl();
-		return monitoringRequest;
+	public TrackingTask createTrackingTask() {
+		TrackingTaskImpl trackingTask = new TrackingTaskImpl();
+		return trackingTask;
 	}
 
 	/**
@@ -546,9 +500,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public WorldModelUpdateRequest createWorldModelUpdateRequest() {
-		WorldModelUpdateRequestImpl worldModelUpdateRequest = new WorldModelUpdateRequestImpl();
-		return worldModelUpdateRequest;
+	public WorldModel createWorldModel() {
+		WorldModelImpl worldModel = new WorldModelImpl();
+		return worldModel;
 	}
 
 	/**
@@ -556,9 +510,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public DataStorageRequest createDataStorageRequest() {
-		DataStorageRequestImpl dataStorageRequest = new DataStorageRequestImpl();
-		return dataStorageRequest;
+	public Barcode createBarcode() {
+		BarcodeImpl barcode = new BarcodeImpl();
+		return barcode;
 	}
 
 	/**
@@ -566,9 +520,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EventFilterConfiguration createEventFilterConfiguration() {
-		EventFilterConfigurationImpl eventFilterConfiguration = new EventFilterConfigurationImpl();
-		return eventFilterConfiguration;
+	public OtherProx createOtherProx() {
+		OtherProxImpl otherProx = new OtherProxImpl();
+		return otherProx;
 	}
 
 	/**
@@ -576,9 +530,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public WorldModelQueryRequest createWorldModelQueryRequest() {
-		WorldModelQueryRequestImpl worldModelQueryRequest = new WorldModelQueryRequestImpl();
-		return worldModelQueryRequest;
+	public Bluetooth createBluetooth() {
+		BluetoothImpl bluetooth = new BluetoothImpl();
+		return bluetooth;
 	}
 
 	/**
@@ -586,9 +540,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public DataStorageQueryRequest createDataStorageQueryRequest() {
-		DataStorageQueryRequestImpl dataStorageQueryRequest = new DataStorageQueryRequestImpl();
-		return dataStorageQueryRequest;
+	public UWB createUWB() {
+		UWBImpl uwb = new UWBImpl();
+		return uwb;
 	}
 
 	/**
@@ -596,9 +550,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AgentRegistrationRequest createAgentRegistrationRequest() {
-		AgentRegistrationRequestImpl agentRegistrationRequest = new AgentRegistrationRequestImpl();
-		return agentRegistrationRequest;
+	public OtherBeacon createOtherBeacon() {
+		OtherBeaconImpl otherBeacon = new OtherBeaconImpl();
+		return otherBeacon;
 	}
 
 	/**
@@ -606,9 +560,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public MonitoringTask createMonitoringTask() {
-		MonitoringTaskImpl monitoringTask = new MonitoringTaskImpl();
-		return monitoringTask;
+	public POI createPOI() {
+		POIImpl poi = new POIImpl();
+		return poi;
 	}
 
 	/**
@@ -616,9 +570,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public TrackingTask createTrackingTask() {
-		TrackingTaskImpl trackingTask = new TrackingTaskImpl();
-		return trackingTask;
+	public EventFilterCondition createEventFilterCondition() {
+		EventFilterConditionImpl eventFilterCondition = new EventFilterConditionImpl();
+		return eventFilterCondition;
 	}
 
 	/**
@@ -626,9 +580,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public WorldModel createWorldModel() {
-		WorldModelImpl worldModel = new WorldModelImpl();
-		return worldModel;
+	public ZoneDescriptor createZoneDescriptor() {
+		ZoneDescriptorImpl zoneDescriptor = new ZoneDescriptorImpl();
+		return zoneDescriptor;
 	}
 
 	/**
@@ -636,9 +590,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Barcode createBarcode() {
-		BarcodeImpl barcode = new BarcodeImpl();
-		return barcode;
+	public DataStorageQueryResponse createDataStorageQueryResponse() {
+		DataStorageQueryResponseImpl dataStorageQueryResponse = new DataStorageQueryResponseImpl();
+		return dataStorageQueryResponse;
 	}
 
 	/**
@@ -646,9 +600,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public OtherProx createOtherProx() {
-		OtherProxImpl otherProx = new OtherProxImpl();
-		return otherProx;
+	public MessageReceivedEvent createMessageReceivedEvent() {
+		MessageReceivedEventImpl messageReceivedEvent = new MessageReceivedEventImpl();
+		return messageReceivedEvent;
 	}
 
 	/**
@@ -656,9 +610,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Bluetooth createBluetooth() {
-		BluetoothImpl bluetooth = new BluetoothImpl();
-		return bluetooth;
+	@SuppressWarnings("unchecked")
+	public List<String> createStringListFromString(EDataType eDataType, String initialValue) {
+		return (List<String>) super.createFromString(initialValue);
 	}
 
 	/**
@@ -666,9 +620,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public UWB createUWB() {
-		UWBImpl uwb = new UWBImpl();
-		return uwb;
+	public String convertStringListToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(instanceValue);
 	}
 
 	/**
@@ -676,9 +629,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SensorConfigurationRequest createSensorConfigurationRequest() {
-		SensorConfigurationRequestImpl sensorConfigurationRequest = new SensorConfigurationRequestImpl();
-		return sensorConfigurationRequest;
+	@SuppressWarnings("unchecked")
+	public ArrayList<String[]> createStringArrayFromString(EDataType eDataType, String initialValue) {
+		return (ArrayList<String[]>) super.createFromString(initialValue);
 	}
 
 	/**
@@ -686,9 +639,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public OtherBeacon createOtherBeacon() {
-		OtherBeaconImpl otherBeacon = new OtherBeaconImpl();
-		return otherBeacon;
+	public String convertStringArrayToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(instanceValue);
 	}
 
 	/**
@@ -696,9 +648,9 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ReferencePosition createReferencePosition() {
-		ReferencePositionImpl referencePosition = new ReferencePositionImpl();
-		return referencePosition;
+	@SuppressWarnings("unchecked")
+	public ArrayList<Float[][]> createFloatArray3dFromString(EDataType eDataType, String initialValue) {
+		return (ArrayList<Float[][]>) super.createFromString(initialValue);
 	}
 
 	/**
@@ -706,9 +658,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EventFilterCondition createEventFilterCondition() {
-		EventFilterConditionImpl eventFilterCondition = new EventFilterConditionImpl();
-		return eventFilterCondition;
+	public String convertFloatArray3dToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(instanceValue);
 	}
 
 	/**
@@ -716,9 +667,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@SuppressWarnings("unchecked")
-	public List<String> createStringListFromString(EDataType eDataType, String initialValue) {
-		return (List<String>) super.createFromString(initialValue);
+	public boolean[] createBooleanListFromString(EDataType eDataType, String initialValue) {
+		return (boolean[]) super.createFromString(initialValue);
 	}
 
 	/**
@@ -726,7 +676,7 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String convertStringListToString(EDataType eDataType, Object instanceValue) {
+	public String convertBooleanListToString(EDataType eDataType, Object instanceValue) {
 		return super.convertToString(instanceValue);
 	}
 
@@ -736,8 +686,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * @generated
 	 */
 	@SuppressWarnings("unchecked")
-	public ArrayList<String[]> createStringArrayFromString(EDataType eDataType, String initialValue) {
-		return (ArrayList<String[]>) super.createFromString(initialValue);
+	public ArrayList<Float[]> createFloatArrayFromString(EDataType eDataType, String initialValue) {
+		return (ArrayList<Float[]>) super.createFromString(initialValue);
 	}
 
 	/**
@@ -745,7 +695,7 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String convertStringArrayToString(EDataType eDataType, Object instanceValue) {
+	public String convertFloatArrayToString(EDataType eDataType, Object instanceValue) {
 		return super.convertToString(instanceValue);
 	}
 
@@ -754,9 +704,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@SuppressWarnings("unchecked")
-	public ArrayList<Float[][]> createFloatArray3dFromString(EDataType eDataType, String initialValue) {
-		return (ArrayList<Float[][]>) super.createFromString(initialValue);
+	public byte[] createByteArrayFromString(EDataType eDataType, String initialValue) {
+		return (byte[]) super.createFromString(initialValue);
 	}
 
 	/**
@@ -764,7 +713,7 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String convertFloatArray3dToString(EDataType eDataType, Object instanceValue) {
+	public String convertByteArrayToString(EDataType eDataType, Object instanceValue) {
 		return super.convertToString(instanceValue);
 	}
 
@@ -773,8 +722,10 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean[] createBooleanListFromString(EDataType eDataType, String initialValue) {
-		return (boolean[]) super.createFromString(initialValue);
+	@SuppressWarnings("unchecked")
+	public LinkedList<HashMap<String, String>> createListOfStringMapsFromString(EDataType eDataType,
+			String initialValue) {
+		return (LinkedList<HashMap<String, String>>) super.createFromString(initialValue);
 	}
 
 	/**
@@ -782,7 +733,7 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String convertBooleanListToString(EDataType eDataType, Object instanceValue) {
+	public String convertListOfStringMapsToString(EDataType eDataType, Object instanceValue) {
 		return super.convertToString(instanceValue);
 	}
 
@@ -791,9 +742,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@SuppressWarnings("unchecked")
-	public ArrayList<Float[]> createFloatArrayFromString(EDataType eDataType, String initialValue) {
-		return (ArrayList<Float[]>) super.createFromString(initialValue);
+	public int[] createIntArrayFromString(EDataType eDataType, String initialValue) {
+		return (int[]) super.createFromString(initialValue);
 	}
 
 	/**
@@ -801,7 +751,7 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String convertFloatArrayToString(EDataType eDataType, Object instanceValue) {
+	public String convertIntArrayToString(EDataType eDataType, Object instanceValue) {
 		return super.convertToString(instanceValue);
 	}
 
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java
index b7fb9a8a4b044dedb69d0817d31910001f358c34..7d86cc238dcfe5bc3f7d31cce5a65029c457fe1a 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java
@@ -2,28 +2,35 @@
  */
 package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
-import ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition;
 import ipos.project.DataModellntegration.iPos_Datamodel.Acceleration;
 import ipos.project.DataModellntegration.iPos_Datamodel.Accuracy;
 import ipos.project.DataModellntegration.iPos_Datamodel.Agent;
-import ipos.project.DataModellntegration.iPos_Datamodel.AgentRegistrationRequest;
-import ipos.project.DataModellntegration.iPos_Datamodel.AngularRate;
 import ipos.project.DataModellntegration.iPos_Datamodel.Barcode;
 import ipos.project.DataModellntegration.iPos_Datamodel.Beacon;
 import ipos.project.DataModellntegration.iPos_Datamodel.Bluetooth;
-import ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryRequest;
-import ipos.project.DataModellntegration.iPos_Datamodel.DataStorageRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse;
 import ipos.project.DataModellntegration.iPos_Datamodel.Entity;
 import ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition;
 import ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration;
 import ipos.project.DataModellntegration.iPos_Datamodel.Gaussian;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl;
+
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelFactory;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
 import ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject;
 import ipos.project.DataModellntegration.iPos_Datamodel.MapType;
-import ipos.project.DataModellntegration.iPos_Datamodel.MonitoringRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent;
 import ipos.project.DataModellntegration.iPos_Datamodel.MonitoringTask;
-import ipos.project.DataModellntegration.iPos_Datamodel.NetworkInterface;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.Orientation;
 import ipos.project.DataModellntegration.iPos_Datamodel.OtherBeacon;
 import ipos.project.DataModellntegration.iPos_Datamodel.OtherProx;
@@ -33,26 +40,24 @@ import ipos.project.DataModellntegration.iPos_Datamodel.Point2D;
 import ipos.project.DataModellntegration.iPos_Datamodel.Point3D;
 import ipos.project.DataModellntegration.iPos_Datamodel.Position;
 import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
-import ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor;
 import ipos.project.DataModellntegration.iPos_Datamodel.Proximity;
 import ipos.project.DataModellntegration.iPos_Datamodel.Quaternion;
-import ipos.project.DataModellntegration.iPos_Datamodel.Rawdata;
 import ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent;
-import ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition;
 import ipos.project.DataModellntegration.iPos_Datamodel.ReferenceSystem;
-import ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition;
-import ipos.project.DataModellntegration.iPos_Datamodel.SensorConfigurationRequest;
 import ipos.project.DataModellntegration.iPos_Datamodel.Space;
-import ipos.project.DataModellntegration.iPos_Datamodel.TrackingRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.TrackingTask;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.WGS84Point;
 import ipos.project.DataModellntegration.iPos_Datamodel.WorldModel;
-import ipos.project.DataModellntegration.iPos_Datamodel.WorldModelQueryRequest;
-import ipos.project.DataModellntegration.iPos_Datamodel.WorldModelUpdateRequest;
 import ipos.project.DataModellntegration.iPos_Datamodel.Zone;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
 import ipos.project.DataModellntegration.iPos_Datamodel.ZoneMap;
 
 import java.util.ArrayList;
+import java.util.LinkedList;
 import java.util.List;
 
 import org.eclipse.emf.ecore.EAttribute;
@@ -94,13 +99,6 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 */
 	private EClass localizableObjectEClass = null;
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass positionSensorEClass = null;
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -122,20 +120,6 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 */
 	private EClass orientationEClass = null;
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass absolutePositionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass relativePositionEClass = null;
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -199,13 +183,6 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 */
 	private EClass mapTypeEClass = null;
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass networkInterfaceEClass = null;
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -232,7 +209,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass rawdataEClass = null;
+	private EClass rawdataEventEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -262,13 +239,6 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 */
 	private EClass imuEClass = null;
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass angularRateEClass = null;
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -295,175 +265,154 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass rawdataEventEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass trackingRequestEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass monitoringRequestEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass worldModelUpdateRequestEClass = null;
+	private EClass eventFilterConfigurationEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass dataStorageRequestEClass = null;
+	private EClass monitoringTaskEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass eventFilterConfigurationEClass = null;
+	private EClass trackingTaskEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass worldModelQueryRequestEClass = null;
+	private EClass worldModelEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass dataStorageQueryRequestEClass = null;
+	private EClass barcodeEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass agentRegistrationRequestEClass = null;
+	private EClass otherProxEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass monitoringTaskEClass = null;
+	private EClass bluetoothEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass trackingTaskEClass = null;
+	private EClass uwbEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass worldModelEClass = null;
+	private EClass otherBeaconEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass barcodeEClass = null;
+	private EClass poiEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass otherProxEClass = null;
+	private EClass eventFilterConditionEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass bluetoothEClass = null;
+	private EClass zoneDescriptorEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass uwbEClass = null;
+	private EClass dataStorageQueryResponseEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass sensorConfigurationRequestEClass = null;
+	private EClass messageReceivedEventEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass otherBeaconEClass = null;
+	private EDataType stringListEDataType = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass referencePositionEClass = null;
+	private EDataType stringArrayEDataType = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass eventFilterConditionEClass = null;
+	private EDataType floatArray3dEDataType = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EDataType stringListEDataType = null;
+	private EDataType booleanListEDataType = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EDataType stringArrayEDataType = null;
+	private EDataType floatArrayEDataType = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EDataType floatArray3dEDataType = null;
+	private EDataType byteArrayEDataType = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EDataType booleanListEDataType = null;
+	private EDataType listOfStringMapsEDataType = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EDataType floatArrayEDataType = null;
+	private EDataType intArrayEDataType = null;
 
 	/**
 	 * Creates an instance of the model <b>Package</b>, registered with
@@ -518,11 +467,42 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		// Initialize simple dependencies
 		XMLTypePackage.eINSTANCE.eClass();
 
+		// Obtain or create and register interdependencies
+		Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OFBizPackage.eNS_URI);
+		OFBizPackageImpl theOFBizPackage = (OFBizPackageImpl) (registeredPackage instanceof OFBizPackageImpl
+				? registeredPackage
+				: OFBizPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPosDevKitPackage.eNS_URI);
+		IPosDevKitPackageImpl theIPosDevKitPackage = (IPosDevKitPackageImpl) (registeredPackage instanceof IPosDevKitPackageImpl
+				? registeredPackage
+				: IPosDevKitPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI);
+		ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl
+				? registeredPackage
+				: ToozPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI);
+		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
+				? registeredPackage
+				: VDA5050Package.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
+
 		// Create package meta-data objects
 		theIPos_DatamodelPackage.createPackageContents();
+		theOFBizPackage.createPackageContents();
+		theIPosDevKitPackage.createPackageContents();
+		theToozPackage.createPackageContents();
+		theVDA5050Package.createPackageContents();
+		theOSMPackage.createPackageContents();
 
 		// Initialize created meta-data
 		theIPos_DatamodelPackage.initializePackageContents();
+		theOFBizPackage.initializePackageContents();
+		theIPosDevKitPackage.initializePackageContents();
+		theToozPackage.initializePackageContents();
+		theVDA5050Package.initializePackageContents();
+		theOSMPackage.initializePackageContents();
 
 		// Mark meta-data to indicate it can't be changed
 		theIPos_DatamodelPackage.freeze();
@@ -541,31 +521,13 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		return agentEClass;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAgent_Name() {
-		return (EAttribute) agentEClass.getEStructuralFeatures().get(0);
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public EReference getAgent_LObject() {
-		return (EReference) agentEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAgent_NetInt() {
-		return (EReference) agentEClass.getEStructuralFeatures().get(2);
+		return (EReference) agentEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -573,8 +535,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAgent_PSensors() {
-		return (EReference) agentEClass.getEStructuralFeatures().get(3);
+	public EAttribute getAgent_AgentType() {
+		return (EAttribute) agentEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -604,49 +566,13 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		return localizableObjectEClass;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLocalizableObject_PSensor() {
-		return (EReference) localizableObjectEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLocalizableObject_CurrentPlacing() {
-		return (EReference) localizableObjectEClass.getEStructuralFeatures().get(1);
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public EAttribute getLocalizableObject_LastPosUpdate() {
-		return (EAttribute) localizableObjectEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getLocalizableObject_Type() {
-		return (EAttribute) localizableObjectEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getPositionSensor() {
-		return positionSensorEClass;
+		return (EAttribute) localizableObjectEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -654,8 +580,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getPositionSensor_Agent() {
-		return (EReference) positionSensorEClass.getEStructuralFeatures().get(0);
+	public EAttribute getLocalizableObject_SensorType() {
+		return (EAttribute) localizableObjectEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -663,8 +589,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getPositionSensor_LObject() {
-		return (EReference) positionSensorEClass.getEStructuralFeatures().get(1);
+	public EReference getLocalizableObject_Agent() {
+		return (EReference) localizableObjectEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -672,8 +598,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getPositionSensor_Type() {
-		return (EAttribute) positionSensorEClass.getEStructuralFeatures().get(2);
+	public EReference getLocalizableObject_CurrentPlacing() {
+		return (EReference) localizableObjectEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -685,22 +611,13 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		return placingEClass;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPlacing_LObject() {
-		return (EReference) placingEClass.getEStructuralFeatures().get(0);
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public EReference getPlacing_Position() {
-		return (EReference) placingEClass.getEStructuralFeatures().get(1);
+		return (EReference) placingEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -709,7 +626,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * @generated
 	 */
 	public EReference getPlacing_Orientation() {
-		return (EReference) placingEClass.getEStructuralFeatures().get(2);
+		return (EReference) placingEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -735,35 +652,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getOrientation() {
-		return orientationEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAbsolutePosition() {
-		return absolutePositionEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAbsolutePosition_Point() {
-		return (EReference) absolutePositionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getRelativePosition() {
-		return relativePositionEClass;
+	public EReference getPosition_Point() {
+		return (EReference) positionEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -771,8 +661,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getRelativePosition_Reference() {
-		return (EReference) relativePositionEClass.getEStructuralFeatures().get(0);
+	public EReference getPosition_ReferenceSystem() {
+		return (EReference) positionEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -780,8 +670,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getRelativePosition_Point() {
-		return (EReference) relativePositionEClass.getEStructuralFeatures().get(1);
+	public EClass getOrientation() {
+		return orientationEClass;
 	}
 
 	/**
@@ -946,6 +836,24 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		return (EReference) zoneEClass.getEStructuralFeatures().get(0);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getZone_Name() {
+		return (EAttribute) zoneEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getZone_Id() {
+		return (EAttribute) zoneEClass.getEStructuralFeatures().get(2);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1005,8 +913,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getMapType() {
-		return mapTypeEClass;
+	public EReference getSpace_CentrePoint() {
+		return (EReference) spaceEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -1014,8 +922,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getNetworkInterface() {
-		return networkInterfaceEClass;
+	public EClass getMapType() {
+		return mapTypeEClass;
 	}
 
 	/**
@@ -1095,8 +1003,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getRawdata() {
-		return rawdataEClass;
+	public EClass getRawdataEvent() {
+		return rawdataEventEClass;
 	}
 
 	/**
@@ -1104,8 +1012,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getRawdata_SensorId() {
-		return (EAttribute) rawdataEClass.getEStructuralFeatures().get(0);
+	public EAttribute getRawdataEvent_TimeStamp() {
+		return (EAttribute) rawdataEventEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1212,8 +1120,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getAngularRate() {
-		return angularRateEClass;
+	public EAttribute getIMU_SensorId() {
+		return (EAttribute) imuEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -1230,8 +1138,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getBeacon() {
-		return beaconEClass;
+	public EAttribute getAcceleration_X() {
+		return (EAttribute) accelerationEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1239,8 +1147,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getBeacon_Distances() {
-		return (EAttribute) beaconEClass.getEStructuralFeatures().get(0);
+	public EAttribute getAcceleration_Y() {
+		return (EAttribute) accelerationEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1248,8 +1156,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getBeacon_Type() {
-		return (EAttribute) beaconEClass.getEStructuralFeatures().get(1);
+	public EAttribute getAcceleration_Z() {
+		return (EAttribute) accelerationEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -1257,8 +1165,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getPositionEvent() {
-		return positionEventEClass;
+	public EClass getBeacon() {
+		return beaconEClass;
 	}
 
 	/**
@@ -1266,8 +1174,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getPositionEvent_Placing() {
-		return (EReference) positionEventEClass.getEStructuralFeatures().get(0);
+	public EAttribute getBeacon_Distances() {
+		return (EAttribute) beaconEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1275,8 +1183,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getPositionEvent_TimeStamp() {
-		return (EAttribute) positionEventEClass.getEStructuralFeatures().get(1);
+	public EAttribute getBeacon_Type() {
+		return (EAttribute) beaconEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1284,8 +1192,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getRawdataEvent() {
-		return rawdataEventEClass;
+	public EAttribute getBeacon_SensorId() {
+		return (EAttribute) beaconEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -1293,8 +1201,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getRawdataEvent_Rawdata() {
-		return (EReference) rawdataEventEClass.getEStructuralFeatures().get(0);
+	public EClass getPositionEvent() {
+		return positionEventEClass;
 	}
 
 	/**
@@ -1302,8 +1210,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getTrackingRequest() {
-		return trackingRequestEClass;
+	public EReference getPositionEvent_Placing() {
+		return (EReference) positionEventEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -1311,8 +1219,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getMonitoringRequest() {
-		return monitoringRequestEClass;
+	public EAttribute getPositionEvent_TimeStamp() {
+		return (EAttribute) positionEventEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1320,8 +1228,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getWorldModelUpdateRequest() {
-		return worldModelUpdateRequestEClass;
+	public EAttribute getPositionEvent_LObjectId() {
+		return (EAttribute) positionEventEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1329,8 +1237,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getDataStorageRequest() {
-		return dataStorageRequestEClass;
+	public EReference getPositionEvent_Zonedescriptors() {
+		return (EReference) positionEventEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -1383,17 +1291,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getWorldModelQueryRequest() {
-		return worldModelQueryRequestEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getDataStorageQueryRequest() {
-		return dataStorageQueryRequestEClass;
+	public EClass getMonitoringTask() {
+		return monitoringTaskEClass;
 	}
 
 	/**
@@ -1401,8 +1300,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getAgentRegistrationRequest() {
-		return agentRegistrationRequestEClass;
+	public EReference getMonitoringTask_Eventfilterconfiguration() {
+		return (EReference) monitoringTaskEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1410,8 +1309,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getMonitoringTask() {
-		return monitoringTaskEClass;
+	public EClass getTrackingTask() {
+		return trackingTaskEClass;
 	}
 
 	/**
@@ -1419,8 +1318,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getMonitoringTask_Eventfilterconfiguration() {
-		return (EReference) monitoringTaskEClass.getEStructuralFeatures().get(0);
+	public EReference getTrackingTask_Eventfilterconfiguration() {
+		return (EReference) trackingTaskEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1428,8 +1327,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getTrackingTask() {
-		return trackingTaskEClass;
+	public EClass getWorldModel() {
+		return worldModelEClass;
 	}
 
 	/**
@@ -1437,8 +1336,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getTrackingTask_Eventfilterconfiguration() {
-		return (EReference) trackingTaskEClass.getEStructuralFeatures().get(0);
+	public EReference getWorldModel_Agent() {
+		return (EReference) worldModelEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1446,8 +1345,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getWorldModel() {
-		return worldModelEClass;
+	public EReference getWorldModel_ZoneMap() {
+		return (EReference) worldModelEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1455,8 +1354,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getWorldModel_Agent() {
-		return (EReference) worldModelEClass.getEStructuralFeatures().get(0);
+	public EReference getWorldModel_Pois() {
+		return (EReference) worldModelEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -1464,8 +1363,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getWorldModel_Zonemap() {
-		return (EReference) worldModelEClass.getEStructuralFeatures().get(1);
+	public EReference getWorldModel_ReferenceSystem() {
+		return (EReference) worldModelEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -1522,15 +1421,6 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		return uwbEClass;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSensorConfigurationRequest() {
-		return sensorConfigurationRequestEClass;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1554,8 +1444,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getReferencePosition() {
-		return referencePositionEClass;
+	public EClass getPOI() {
+		return poiEClass;
 	}
 
 	/**
@@ -1563,8 +1453,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getReferencePosition_Position() {
-		return (EReference) referencePositionEClass.getEStructuralFeatures().get(0);
+	public EReference getPOI_Placing() {
+		return (EReference) poiEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1572,8 +1462,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getReferencePosition_Id() {
-		return (EAttribute) referencePositionEClass.getEStructuralFeatures().get(1);
+	public EAttribute getPOI_Description() {
+		return (EAttribute) poiEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1581,8 +1471,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getEventFilterCondition() {
-		return eventFilterConditionEClass;
+	public EAttribute getPOI_Data() {
+		return (EAttribute) poiEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -1590,8 +1480,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_TimeCondition() {
-		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(0);
+	public EAttribute getPOI_Id() {
+		return (EAttribute) poiEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -1599,7 +1489,25 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_CategoryCondition() {
+	public EClass getEventFilterCondition() {
+		return eventFilterConditionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEventFilterCondition_TimeCondition() {
+		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEventFilterCondition_AccuracyCondition() {
 		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -1608,7 +1516,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_IdCondition() {
+	public EAttribute getEventFilterCondition_PositionCondition() {
 		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -1617,7 +1525,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_AccuracyCondition() {
+	public EAttribute getEventFilterCondition_TimeMinInterval() {
 		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -1626,7 +1534,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_PositionCondition() {
+	public EAttribute getEventFilterCondition_PositionDelta() {
 		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(4);
 	}
 
@@ -1635,7 +1543,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_TimeMinInterval() {
+	public EAttribute getEventFilterCondition_SensorIdCondition() {
 		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(5);
 	}
 
@@ -1644,7 +1552,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_PositionDelta() {
+	public EAttribute getEventFilterCondition_FilterStructure() {
 		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(6);
 	}
 
@@ -1653,7 +1561,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_SensorIdCondition() {
+	public EAttribute getEventFilterCondition_PositionConditionCells() {
 		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(7);
 	}
 
@@ -1662,7 +1570,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_FilterStructure() {
+	public EAttribute getEventFilterCondition_IdCondition() {
 		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(8);
 	}
 
@@ -1671,10 +1579,127 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getEventFilterCondition_PositionConditionCell() {
+	public EAttribute getEventFilterCondition_CategoryCondition() {
 		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(9);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEventFilterCondition_PropertyCondition() {
+		return (EAttribute) eventFilterConditionEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getZoneDescriptor() {
+		return zoneDescriptorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getZoneDescriptor_ZoneId() {
+		return (EAttribute) zoneDescriptorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getZoneDescriptor_NotificationType() {
+		return (EAttribute) zoneDescriptorEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataStorageQueryResponse() {
+		return dataStorageQueryResponseEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataStorageQueryResponse_PositionEvents() {
+		return (EReference) dataStorageQueryResponseEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataStorageQueryResponse_TrackingTaskId() {
+		return (EAttribute) dataStorageQueryResponseEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMessageReceivedEvent() {
+		return messageReceivedEventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMessageReceivedEvent_ProtocolName() {
+		return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMessageReceivedEvent_SerializedMsg() {
+		return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMessageReceivedEvent_AgentId() {
+		return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMessageReceivedEvent_ExtractedAttributes() {
+		return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMessageReceivedEvent_Timestamp() {
+		return (EAttribute) messageReceivedEventEClass.getEStructuralFeatures().get(4);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1720,6 +1745,33 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		return floatArrayEDataType;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getByteArray() {
+		return byteArrayEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getListOfStringMaps() {
+		return listOfStringMapsEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getIntArray() {
+		return intArrayEDataType;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1750,42 +1802,29 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		// Create classes and their features
 		agentEClass = createEClass(AGENT);
-		createEAttribute(agentEClass, AGENT__NAME);
 		createEReference(agentEClass, AGENT__LOBJECT);
-		createEReference(agentEClass, AGENT__NET_INT);
-		createEReference(agentEClass, AGENT__PSENSORS);
+		createEAttribute(agentEClass, AGENT__AGENT_TYPE);
 
 		entityEClass = createEClass(ENTITY);
 		createEAttribute(entityEClass, ENTITY__ID);
 
 		localizableObjectEClass = createEClass(LOCALIZABLE_OBJECT);
-		createEReference(localizableObjectEClass, LOCALIZABLE_OBJECT__PSENSOR);
-		createEReference(localizableObjectEClass, LOCALIZABLE_OBJECT__CURRENT_PLACING);
 		createEAttribute(localizableObjectEClass, LOCALIZABLE_OBJECT__LAST_POS_UPDATE);
-		createEAttribute(localizableObjectEClass, LOCALIZABLE_OBJECT__TYPE);
-
-		positionSensorEClass = createEClass(POSITION_SENSOR);
-		createEReference(positionSensorEClass, POSITION_SENSOR__AGENT);
-		createEReference(positionSensorEClass, POSITION_SENSOR__LOBJECT);
-		createEAttribute(positionSensorEClass, POSITION_SENSOR__TYPE);
+		createEAttribute(localizableObjectEClass, LOCALIZABLE_OBJECT__SENSOR_TYPE);
+		createEReference(localizableObjectEClass, LOCALIZABLE_OBJECT__AGENT);
+		createEReference(localizableObjectEClass, LOCALIZABLE_OBJECT__CURRENT_PLACING);
 
 		placingEClass = createEClass(PLACING);
-		createEReference(placingEClass, PLACING__LOBJECT);
 		createEReference(placingEClass, PLACING__POSITION);
 		createEReference(placingEClass, PLACING__ORIENTATION);
 
 		positionEClass = createEClass(POSITION);
 		createEReference(positionEClass, POSITION__ACCURACY);
+		createEReference(positionEClass, POSITION__POINT);
+		createEReference(positionEClass, POSITION__REFERENCE_SYSTEM);
 
 		orientationEClass = createEClass(ORIENTATION);
 
-		absolutePositionEClass = createEClass(ABSOLUTE_POSITION);
-		createEReference(absolutePositionEClass, ABSOLUTE_POSITION__POINT);
-
-		relativePositionEClass = createEClass(RELATIVE_POSITION);
-		createEReference(relativePositionEClass, RELATIVE_POSITION__REFERENCE);
-		createEReference(relativePositionEClass, RELATIVE_POSITION__POINT);
-
 		wgs84PointEClass = createEClass(WGS84_POINT);
 		createEAttribute(wgs84PointEClass, WGS84_POINT__LONGITUDE);
 		createEAttribute(wgs84PointEClass, WGS84_POINT__LATITUDE);
@@ -1809,6 +1848,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		zoneEClass = createEClass(ZONE);
 		createEReference(zoneEClass, ZONE__SPACE);
+		createEAttribute(zoneEClass, ZONE__NAME);
+		createEAttribute(zoneEClass, ZONE__ID);
 
 		zoneMapEClass = createEClass(ZONE_MAP);
 		createEReference(zoneMapEClass, ZONE_MAP__ZONE);
@@ -1817,11 +1858,10 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		createEAttribute(spaceEClass, SPACE__X);
 		createEAttribute(spaceEClass, SPACE__Y);
 		createEAttribute(spaceEClass, SPACE__Z);
+		createEReference(spaceEClass, SPACE__CENTRE_POINT);
 
 		mapTypeEClass = createEClass(MAP_TYPE);
 
-		networkInterfaceEClass = createEClass(NETWORK_INTERFACE);
-
 		quaternionEClass = createEClass(QUATERNION);
 		createEAttribute(quaternionEClass, QUATERNION__X);
 		createEAttribute(quaternionEClass, QUATERNION__Y);
@@ -1833,8 +1873,8 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		pointEClass = createEClass(POINT);
 
-		rawdataEClass = createEClass(RAWDATA);
-		createEAttribute(rawdataEClass, RAWDATA__SENSOR_ID);
+		rawdataEventEClass = createEClass(RAWDATA_EVENT);
+		createEAttribute(rawdataEventEClass, RAWDATA_EVENT__TIME_STAMP);
 
 		proximityEClass = createEClass(PROXIMITY);
 		createEAttribute(proximityEClass, PROXIMITY__TAG_ID);
@@ -1850,29 +1890,23 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		imuEClass = createEClass(IMU);
 		createEReference(imuEClass, IMU__ANGULARRATE);
 		createEReference(imuEClass, IMU__ACCELERATION);
-
-		angularRateEClass = createEClass(ANGULAR_RATE);
+		createEAttribute(imuEClass, IMU__SENSOR_ID);
 
 		accelerationEClass = createEClass(ACCELERATION);
+		createEAttribute(accelerationEClass, ACCELERATION__X);
+		createEAttribute(accelerationEClass, ACCELERATION__Y);
+		createEAttribute(accelerationEClass, ACCELERATION__Z);
 
 		beaconEClass = createEClass(BEACON);
 		createEAttribute(beaconEClass, BEACON__DISTANCES);
 		createEAttribute(beaconEClass, BEACON__TYPE);
+		createEAttribute(beaconEClass, BEACON__SENSOR_ID);
 
 		positionEventEClass = createEClass(POSITION_EVENT);
-		createEReference(positionEventEClass, POSITION_EVENT__PLACING);
 		createEAttribute(positionEventEClass, POSITION_EVENT__TIME_STAMP);
-
-		rawdataEventEClass = createEClass(RAWDATA_EVENT);
-		createEReference(rawdataEventEClass, RAWDATA_EVENT__RAWDATA);
-
-		trackingRequestEClass = createEClass(TRACKING_REQUEST);
-
-		monitoringRequestEClass = createEClass(MONITORING_REQUEST);
-
-		worldModelUpdateRequestEClass = createEClass(WORLD_MODEL_UPDATE_REQUEST);
-
-		dataStorageRequestEClass = createEClass(DATA_STORAGE_REQUEST);
+		createEAttribute(positionEventEClass, POSITION_EVENT__LOBJECT_ID);
+		createEReference(positionEventEClass, POSITION_EVENT__ZONEDESCRIPTORS);
+		createEReference(positionEventEClass, POSITION_EVENT__PLACING);
 
 		eventFilterConfigurationEClass = createEClass(EVENT_FILTER_CONFIGURATION);
 		createEAttribute(eventFilterConfigurationEClass, EVENT_FILTER_CONFIGURATION__POSITION_AMBIGUITY_STRATEGY);
@@ -1880,12 +1914,6 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		createEAttribute(eventFilterConfigurationEClass, EVENT_FILTER_CONFIGURATION__FILTER_CRITERIA);
 		createEReference(eventFilterConfigurationEClass, EVENT_FILTER_CONFIGURATION__EVENTFILTERCONDITION);
 
-		worldModelQueryRequestEClass = createEClass(WORLD_MODEL_QUERY_REQUEST);
-
-		dataStorageQueryRequestEClass = createEClass(DATA_STORAGE_QUERY_REQUEST);
-
-		agentRegistrationRequestEClass = createEClass(AGENT_REGISTRATION_REQUEST);
-
 		monitoringTaskEClass = createEClass(MONITORING_TASK);
 		createEReference(monitoringTaskEClass, MONITORING_TASK__EVENTFILTERCONFIGURATION);
 
@@ -1894,7 +1922,9 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		worldModelEClass = createEClass(WORLD_MODEL);
 		createEReference(worldModelEClass, WORLD_MODEL__AGENT);
-		createEReference(worldModelEClass, WORLD_MODEL__ZONEMAP);
+		createEReference(worldModelEClass, WORLD_MODEL__ZONE_MAP);
+		createEReference(worldModelEClass, WORLD_MODEL__POIS);
+		createEReference(worldModelEClass, WORLD_MODEL__REFERENCE_SYSTEM);
 
 		barcodeEClass = createEClass(BARCODE);
 
@@ -1906,26 +1936,42 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		uwbEClass = createEClass(UWB);
 
-		sensorConfigurationRequestEClass = createEClass(SENSOR_CONFIGURATION_REQUEST);
-
 		otherBeaconEClass = createEClass(OTHER_BEACON);
 		createEAttribute(otherBeaconEClass, OTHER_BEACON__DATA);
 
-		referencePositionEClass = createEClass(REFERENCE_POSITION);
-		createEReference(referencePositionEClass, REFERENCE_POSITION__POSITION);
-		createEAttribute(referencePositionEClass, REFERENCE_POSITION__ID);
+		poiEClass = createEClass(POI);
+		createEReference(poiEClass, POI__PLACING);
+		createEAttribute(poiEClass, POI__DESCRIPTION);
+		createEAttribute(poiEClass, POI__DATA);
+		createEAttribute(poiEClass, POI__ID);
 
 		eventFilterConditionEClass = createEClass(EVENT_FILTER_CONDITION);
 		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__TIME_CONDITION);
-		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__CATEGORY_CONDITION);
-		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__ID_CONDITION);
 		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__ACCURACY_CONDITION);
 		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__POSITION_CONDITION);
 		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__TIME_MIN_INTERVAL);
 		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__POSITION_DELTA);
 		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__SENSOR_ID_CONDITION);
 		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__FILTER_STRUCTURE);
-		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__POSITION_CONDITION_CELL);
+		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__POSITION_CONDITION_CELLS);
+		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__ID_CONDITION);
+		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__CATEGORY_CONDITION);
+		createEAttribute(eventFilterConditionEClass, EVENT_FILTER_CONDITION__PROPERTY_CONDITION);
+
+		zoneDescriptorEClass = createEClass(ZONE_DESCRIPTOR);
+		createEAttribute(zoneDescriptorEClass, ZONE_DESCRIPTOR__ZONE_ID);
+		createEAttribute(zoneDescriptorEClass, ZONE_DESCRIPTOR__NOTIFICATION_TYPE);
+
+		dataStorageQueryResponseEClass = createEClass(DATA_STORAGE_QUERY_RESPONSE);
+		createEReference(dataStorageQueryResponseEClass, DATA_STORAGE_QUERY_RESPONSE__POSITION_EVENTS);
+		createEAttribute(dataStorageQueryResponseEClass, DATA_STORAGE_QUERY_RESPONSE__TRACKING_TASK_ID);
+
+		messageReceivedEventEClass = createEClass(MESSAGE_RECEIVED_EVENT);
+		createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME);
+		createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG);
+		createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__AGENT_ID);
+		createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES);
+		createEAttribute(messageReceivedEventEClass, MESSAGE_RECEIVED_EVENT__TIMESTAMP);
 
 		// Create data types
 		stringListEDataType = createEDataType(STRING_LIST);
@@ -1933,6 +1979,9 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		floatArray3dEDataType = createEDataType(FLOAT_ARRAY3D);
 		booleanListEDataType = createEDataType(BOOLEAN_LIST);
 		floatArrayEDataType = createEDataType(FLOAT_ARRAY);
+		byteArrayEDataType = createEDataType(BYTE_ARRAY);
+		listOfStringMapsEDataType = createEDataType(LIST_OF_STRING_MAPS);
+		intArrayEDataType = createEDataType(INT_ARRAY);
 	}
 
 	/**
@@ -1960,9 +2009,23 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		setNsURI(eNS_URI);
 
 		// Obtain other dependent packages
+		OFBizPackage theOFBizPackage = (OFBizPackage) EPackage.Registry.INSTANCE.getEPackage(OFBizPackage.eNS_URI);
+		IPosDevKitPackage theIPosDevKitPackage = (IPosDevKitPackage) EPackage.Registry.INSTANCE
+				.getEPackage(IPosDevKitPackage.eNS_URI);
+		ToozPackage theToozPackage = (ToozPackage) EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI);
+		VDA5050Package theVDA5050Package = (VDA5050Package) EPackage.Registry.INSTANCE
+				.getEPackage(VDA5050Package.eNS_URI);
+		OSMPackage theOSMPackage = (OSMPackage) EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
 		XMLTypePackage theXMLTypePackage = (XMLTypePackage) EPackage.Registry.INSTANCE
 				.getEPackage(XMLTypePackage.eNS_URI);
 
+		// Add subpackages
+		getESubpackages().add(theOFBizPackage);
+		getESubpackages().add(theIPosDevKitPackage);
+		getESubpackages().add(theToozPackage);
+		getESubpackages().add(theVDA5050Package);
+		getESubpackages().add(theOSMPackage);
+
 		// Create type parameters
 
 		// Set bounds for type parameters
@@ -1970,20 +2033,17 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		// Add supertypes to classes
 		agentEClass.getESuperTypes().add(this.getEntity());
 		localizableObjectEClass.getESuperTypes().add(this.getEntity());
-		positionSensorEClass.getESuperTypes().add(this.getEntity());
-		absolutePositionEClass.getESuperTypes().add(this.getPosition());
-		relativePositionEClass.getESuperTypes().add(this.getPosition());
+		wgs84PointEClass.getESuperTypes().add(this.getPoint());
 		point2DEClass.getESuperTypes().add(this.getPoint());
 		point3DEClass.getESuperTypes().add(this.getPoint());
-		zoneEClass.getESuperTypes().add(this.getReferenceSystem());
 		zoneMapEClass.getESuperTypes().add(this.getMapType());
 		quaternionEClass.getESuperTypes().add(this.getOrientation());
 		gaussianEClass.getESuperTypes().add(this.getAccuracy());
-		proximityEClass.getESuperTypes().add(this.getRawdata());
+		proximityEClass.getESuperTypes().add(this.getRawdataEvent());
 		rfidEClass.getESuperTypes().add(this.getProximity());
 		nfcEClass.getESuperTypes().add(this.getProximity());
-		imuEClass.getESuperTypes().add(this.getRawdata());
-		beaconEClass.getESuperTypes().add(this.getRawdata());
+		imuEClass.getESuperTypes().add(this.getRawdataEvent());
+		beaconEClass.getESuperTypes().add(this.getRawdataEvent());
 		barcodeEClass.getESuperTypes().add(this.getProximity());
 		otherProxEClass.getESuperTypes().add(this.getProximity());
 		bluetoothEClass.getESuperTypes().add(this.getBeacon());
@@ -1992,17 +2052,11 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(agentEClass, Agent.class, "Agent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAgent_Name(), ecorePackage.getEString(), "name", null, 0, 1, Agent.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAgent_LObject(), this.getLocalizableObject(), null, "lObject", null, 0, -1, Agent.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAgent_NetInt(), this.getNetworkInterface(), null, "netInt", null, 1, 1, Agent.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAgent_PSensors(), this.getPositionSensor(), null, "pSensors", null, 0, -1, Agent.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getAgent_AgentType(), ecorePackage.getEString(), "agentType", null, 0, 1, Agent.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(entityEClass, Entity.class, "Entity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getEntity_Id(), ecorePackage.getEString(), "id", null, 0, 1, Entity.class, !IS_TRANSIENT,
@@ -2010,34 +2064,20 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		initEClass(localizableObjectEClass, LocalizableObject.class, "LocalizableObject", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getLocalizableObject_PSensor(), this.getPositionSensor(), null, "pSensor", null, 1, 1,
-				LocalizableObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getLocalizableObject_CurrentPlacing(), this.getPlacing(), this.getPlacing_LObject(),
-				"currentPlacing", null, 0, 1, LocalizableObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getLocalizableObject_LastPosUpdate(), ecorePackage.getEString(), "lastPosUpdate", null, 0, 1,
 				LocalizableObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
-		initEAttribute(getLocalizableObject_Type(), ecorePackage.getEString(), "type", null, 0, 1,
+		initEAttribute(getLocalizableObject_SensorType(), ecorePackage.getEString(), "sensorType", null, 0, 1,
 				LocalizableObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
-
-		initEClass(positionSensorEClass, PositionSensor.class, "PositionSensor", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getPositionSensor_Agent(), this.getAgent(), null, "agent", null, 0, 1, PositionSensor.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPositionSensor_LObject(), this.getLocalizableObject(), null, "lObject", null, 0, 1,
-				PositionSensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+		initEReference(getLocalizableObject_Agent(), this.getAgent(), null, "agent", null, 0, 1,
+				LocalizableObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getLocalizableObject_CurrentPlacing(), this.getPlacing(), null, "currentPlacing", null, 0, 1,
+				LocalizableObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
 				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getPositionSensor_Type(), ecorePackage.getEString(), "type", null, 0, 1, PositionSensor.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(placingEClass, Placing.class, "Placing", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getPlacing_LObject(), this.getLocalizableObject(), this.getLocalizableObject_CurrentPlacing(),
-				"lObject", null, 1, 1, Placing.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-				IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getPlacing_Position(), this.getPosition(), null, "position", null, 1, 1, Placing.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2050,24 +2090,15 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		initEReference(getPosition_Accuracy(), this.getAccuracy(), null, "accuracy", null, 0, 1, Position.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(orientationEClass, Orientation.class, "Orientation", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(absolutePositionEClass, AbsolutePosition.class, "AbsolutePosition", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAbsolutePosition_Point(), this.getWGS84Point(), null, "point", null, 1, 1,
-				AbsolutePosition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+		initEReference(getPosition_Point(), this.getPoint(), null, "point", null, 1, 1, Position.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEReference(getPosition_ReferenceSystem(), this.getReferenceSystem(), null, "referenceSystem", null, 1, 1,
+				Position.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
 				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(relativePositionEClass, RelativePosition.class, "RelativePosition", !IS_ABSTRACT, !IS_INTERFACE,
+		initEClass(orientationEClass, Orientation.class, "Orientation", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getRelativePosition_Reference(), this.getReferenceSystem(), null, "reference", null, 1, 1,
-				RelativePosition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRelativePosition_Point(), this.getPoint(), null, "point", null, 1, 1, RelativePosition.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(wgs84PointEClass, WGS84Point.class, "WGS84Point", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
@@ -2100,7 +2131,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		initEClass(referenceSystemEClass, ReferenceSystem.class, "ReferenceSystem", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getReferenceSystem_Origin(), this.getPlacing(), null, "origin", null, 1, 1,
+		initEReference(getReferenceSystem_Origin(), this.getPlacing(), null, "origin", null, 0, 1,
 				ReferenceSystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
 				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getReferenceSystem_Name(), ecorePackage.getEString(), "name", null, 0, 1, ReferenceSystem.class,
@@ -2112,6 +2143,10 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		initEReference(getZone_Space(), this.getSpace(), null, "space", null, 0, -1, Zone.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
 				IS_ORDERED);
+		initEAttribute(getZone_Name(), ecorePackage.getEString(), "name", null, 0, 1, Zone.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getZone_Id(), ecorePackage.getEString(), "id", null, 0, 1, Zone.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(zoneMapEClass, ZoneMap.class, "ZoneMap", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getZoneMap_Zone(), this.getZone(), null, "zone", null, 0, -1, ZoneMap.class, !IS_TRANSIENT,
@@ -2125,12 +2160,12 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getSpace_Z(), theXMLTypePackage.getFloat(), "z", null, 0, 1, Space.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSpace_CentrePoint(), this.getPlacing(), null, "centrePoint", null, 1, 1, Space.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(mapTypeEClass, MapType.class, "MapType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
-		initEClass(networkInterfaceEClass, NetworkInterface.class, "NetworkInterface", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
-
 		initEClass(quaternionEClass, Quaternion.class, "Quaternion", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getQuaternion_X(), ecorePackage.getEFloat(), "x", null, 0, 1, Quaternion.class, !IS_TRANSIENT,
@@ -2150,9 +2185,11 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		initEClass(pointEClass, Point.class, "Point", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
-		initEClass(rawdataEClass, Rawdata.class, "Rawdata", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getRawdata_SensorId(), ecorePackage.getEString(), "sensorId", null, 0, 1, Rawdata.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(rawdataEventEClass, RawdataEvent.class, "RawdataEvent", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getRawdataEvent_TimeStamp(), theXMLTypePackage.getString(), "timeStamp", null, 0, 1,
+				RawdataEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
 
 		initEClass(proximityEClass, Proximity.class, "Proximity", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
@@ -2174,7 +2211,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		EGenericType g1 = createEGenericType(ecorePackage.getEMap());
 		EGenericType g2 = createEGenericType(ecorePackage.getEString());
 		g1.getETypeArguments().add(g2);
-		g2 = createEGenericType(ecorePackage.getEObject());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
 		g1.getETypeArguments().add(g2);
 		initEAttribute(getNFC_TagData(), g1, "tagData", null, 0, 1,
 				ipos.project.DataModellntegration.iPos_Datamodel.NFC.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
@@ -2182,57 +2219,53 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		initEClass(imuEClass, ipos.project.DataModellntegration.iPos_Datamodel.IMU.class, "IMU", !IS_ABSTRACT,
 				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getIMU_Angularrate(), this.getAngularRate(), null, "angularrate", null, 1, 1,
+		initEReference(getIMU_Angularrate(), this.getQuaternion(), null, "angularrate", null, 1, 1,
 				ipos.project.DataModellntegration.iPos_Datamodel.IMU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
 				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getIMU_Acceleration(), this.getAcceleration(), null, "acceleration", null, 1, 1,
 				ipos.project.DataModellntegration.iPos_Datamodel.IMU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
 				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(angularRateEClass, AngularRate.class, "AngularRate", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getIMU_SensorId(), theXMLTypePackage.getString(), "sensorId", null, 0, 1,
+				ipos.project.DataModellntegration.iPos_Datamodel.IMU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(accelerationEClass, Acceleration.class, "Acceleration", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getAcceleration_X(), theXMLTypePackage.getFloat(), "x", null, 0, 1, Acceleration.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getAcceleration_Y(), theXMLTypePackage.getFloat(), "y", null, 0, 1, Acceleration.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getAcceleration_Z(), theXMLTypePackage.getFloat(), "z", null, 0, 1, Acceleration.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(beaconEClass, Beacon.class, "Beacon", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		g1 = createEGenericType(ecorePackage.getEMap());
 		g2 = createEGenericType(ecorePackage.getEString());
 		g1.getETypeArguments().add(g2);
-		g2 = createEGenericType(ecorePackage.getEIntegerObject());
+		g2 = createEGenericType(ecorePackage.getEDoubleObject());
 		g1.getETypeArguments().add(g2);
 		initEAttribute(getBeacon_Distances(), g1, "distances", null, 0, 1, Beacon.class, IS_TRANSIENT, !IS_VOLATILE,
 				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getBeacon_Type(), ecorePackage.getEString(), "type", null, 0, 1, Beacon.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBeacon_SensorId(), theXMLTypePackage.getString(), "sensorId", null, 0, 1, Beacon.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(positionEventEClass, PositionEvent.class, "PositionEvent", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getPositionEvent_Placing(), this.getPlacing(), null, "placing", null, 1, 1, PositionEvent.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPositionEvent_TimeStamp(), theXMLTypePackage.getString(), "timeStamp", null, 0, 1,
 				PositionEvent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
-
-		initEClass(rawdataEventEClass, RawdataEvent.class, "RawdataEvent", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getRawdataEvent_Rawdata(), this.getRawdata(), null, "rawdata", null, 1, -1, RawdataEvent.class,
+		initEAttribute(getPositionEvent_LObjectId(), ecorePackage.getEString(), "lObjectId", null, 0, 1,
+				PositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEReference(getPositionEvent_Zonedescriptors(), this.getZoneDescriptor(), null, "zonedescriptors", null, 0,
+				-1, PositionEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPositionEvent_Placing(), this.getPlacing(), null, "placing", null, 1, 1, PositionEvent.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(trackingRequestEClass, TrackingRequest.class, "TrackingRequest", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(monitoringRequestEClass, MonitoringRequest.class, "MonitoringRequest", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(worldModelUpdateRequestEClass, WorldModelUpdateRequest.class, "WorldModelUpdateRequest",
-				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(dataStorageRequestEClass, DataStorageRequest.class, "DataStorageRequest", !IS_ABSTRACT,
-				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
 		initEClass(eventFilterConfigurationEClass, EventFilterConfiguration.class, "EventFilterConfiguration",
 				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getEventFilterConfiguration_PositionAmbiguityStrategy(), ecorePackage.getEString(),
@@ -2254,19 +2287,10 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		initEAttribute(getEventFilterConfiguration_FilterCriteria(), g1, "filterCriteria", null, 0, 1,
 				EventFilterConfiguration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEventFilterConfiguration_Eventfiltercondition(), this.getEventFilterCondition(), null,
+		initEReference(getEventFilterConfiguration_Eventfiltercondition(), this.getTrackingTask(), null,
 				"eventfiltercondition", null, 0, -1, EventFilterConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE,
 				IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(worldModelQueryRequestEClass, WorldModelQueryRequest.class, "WorldModelQueryRequest", !IS_ABSTRACT,
-				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(dataStorageQueryRequestEClass, DataStorageQueryRequest.class, "DataStorageQueryRequest",
-				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(agentRegistrationRequestEClass, AgentRegistrationRequest.class, "AgentRegistrationRequest",
-				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
 		initEClass(monitoringTaskEClass, MonitoringTask.class, "MonitoringTask", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getMonitoringTask_Eventfilterconfiguration(), this.getEventFilterConfiguration(), null,
@@ -2284,9 +2308,15 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		initEReference(getWorldModel_Agent(), this.getAgent(), null, "agent", null, 0, -1, WorldModel.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getWorldModel_Zonemap(), this.getZoneMap(), null, "zonemap", null, 0, -1, WorldModel.class,
+		initEReference(getWorldModel_ZoneMap(), this.getZoneMap(), null, "zoneMap", null, 0, -1, WorldModel.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getWorldModel_Pois(), this.getPOI(), null, "pois", null, 0, -1, WorldModel.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEReference(getWorldModel_ReferenceSystem(), this.getReferenceSystem(), null, "referenceSystem", null, 0, -1,
+				WorldModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(barcodeEClass, Barcode.class, "Barcode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
@@ -2295,7 +2325,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		g1 = createEGenericType(ecorePackage.getEMap());
 		g2 = createEGenericType(ecorePackage.getEString());
 		g1.getETypeArguments().add(g2);
-		g2 = createEGenericType(ecorePackage.getEObject());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
 		g1.getETypeArguments().add(g2);
 		initEAttribute(getOtherProx_Data(), g1, "data", null, 0, 1, OtherProx.class, IS_TRANSIENT, !IS_VOLATILE,
 				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2305,7 +2335,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		g1 = createEGenericType(ecorePackage.getEMap());
 		g2 = createEGenericType(ecorePackage.getEString());
 		g1.getETypeArguments().add(g2);
-		g2 = createEGenericType(ecorePackage.getEIntegerObject());
+		g2 = createEGenericType(theXMLTypePackage.getDoubleObject());
 		g1.getETypeArguments().add(g2);
 		initEAttribute(getBluetooth_Rss(), g1, "rss", null, 0, 1, Bluetooth.class, IS_TRANSIENT, !IS_VOLATILE,
 				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2313,38 +2343,41 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		initEClass(uwbEClass, ipos.project.DataModellntegration.iPos_Datamodel.UWB.class, "UWB", !IS_ABSTRACT,
 				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
-		initEClass(sensorConfigurationRequestEClass, SensorConfigurationRequest.class, "SensorConfigurationRequest",
-				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
 		initEClass(otherBeaconEClass, OtherBeacon.class, "OtherBeacon", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
 		g1 = createEGenericType(ecorePackage.getEMap());
 		g2 = createEGenericType(ecorePackage.getEString());
 		g1.getETypeArguments().add(g2);
-		g2 = createEGenericType(ecorePackage.getEObject());
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
 		g1.getETypeArguments().add(g2);
 		initEAttribute(getOtherBeacon_Data(), g1, "data", null, 0, 1, OtherBeacon.class, IS_TRANSIENT, !IS_VOLATILE,
 				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(referencePositionEClass, ReferencePosition.class, "ReferencePosition", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getReferencePosition_Position(), this.getPosition(), null, "position", null, 1, 1,
-				ReferencePosition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getReferencePosition_Id(), ecorePackage.getEString(), "id", null, 0, 1, ReferencePosition.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(poiEClass, ipos.project.DataModellntegration.iPos_Datamodel.POI.class, "POI", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getPOI_Placing(), this.getPlacing(), null, "placing", null, 1, 1,
+				ipos.project.DataModellntegration.iPos_Datamodel.POI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPOI_Description(), ecorePackage.getEString(), "description", null, 0, 1,
+				ipos.project.DataModellntegration.iPos_Datamodel.POI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getPOI_Data(), g1, "data", null, 0, 1,
+				ipos.project.DataModellntegration.iPos_Datamodel.POI.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPOI_Id(), ecorePackage.getEString(), "id", null, 0, 1,
+				ipos.project.DataModellntegration.iPos_Datamodel.POI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(eventFilterConditionEClass, EventFilterCondition.class, "EventFilterCondition", !IS_ABSTRACT,
 				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getEventFilterCondition_TimeCondition(), this.getStringArray(), "timeCondition", null, 0, 1,
 				EventFilterCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEventFilterCondition_CategoryCondition(), this.getStringList(), "categoryCondition", null, 0,
-				1, EventFilterCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
-				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEventFilterCondition_IdCondition(), this.getStringList(), "idCondition", "", 0, 1,
-				EventFilterCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
-				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getEventFilterCondition_AccuracyCondition(), theXMLTypePackage.getFloat(), "accuracyCondition",
 				null, 0, 1, EventFilterCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
 				!IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2363,10 +2396,60 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		initEAttribute(getEventFilterCondition_FilterStructure(), this.getBooleanList(), "filterStructure", null, 0, 1,
 				EventFilterCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
 				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEventFilterCondition_PositionConditionCell(), this.getFloatArray3d(), "positionConditionCell",
-				null, 0, 1, EventFilterCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+		g1 = createEGenericType(ecorePackage.getEMap());
+		g2 = createEGenericType(theXMLTypePackage.getString());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(this.getFloatArray3d());
+		g1.getETypeArguments().add(g2);
+		initEAttribute(getEventFilterCondition_PositionConditionCells(), g1, "positionConditionCells", null, 0, 1,
+				EventFilterCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEventFilterCondition_IdCondition(), this.getStringList(), "idCondition", null, 0, 1,
+				EventFilterCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEventFilterCondition_CategoryCondition(), this.getStringList(), "categoryCondition", null, 0,
+				1, EventFilterCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEventFilterCondition_PropertyCondition(), this.getStringList(), "propertyCondition", null, 0,
+				1, EventFilterCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(zoneDescriptorEClass, ZoneDescriptor.class, "ZoneDescriptor", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getZoneDescriptor_ZoneId(), theXMLTypePackage.getString(), "zoneId", null, 0, 1,
+				ZoneDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getZoneDescriptor_NotificationType(), theXMLTypePackage.getString(), "notificationType", null, 0,
+				1, ZoneDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataStorageQueryResponseEClass, DataStorageQueryResponse.class, "DataStorageQueryResponse",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataStorageQueryResponse_PositionEvents(), this.getPositionEvent(), null, "positionEvents",
+				null, 0, -1, DataStorageQueryResponse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+				IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataStorageQueryResponse_TrackingTaskId(), theXMLTypePackage.getString(), "trackingTaskId",
+				null, 0, 1, DataStorageQueryResponse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
 				!IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(messageReceivedEventEClass, MessageReceivedEvent.class, "MessageReceivedEvent", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getMessageReceivedEvent_ProtocolName(), ecorePackage.getEString(), "protocolName", null, 0, 1,
+				MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMessageReceivedEvent_SerializedMsg(), this.getByteArray(), "serializedMsg", null, 0, 1,
+				MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMessageReceivedEvent_AgentId(), ecorePackage.getEString(), "agentId", null, 0, 1,
+				MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMessageReceivedEvent_ExtractedAttributes(), this.getListOfStringMaps(), "extractedAttributes",
+				null, 0, 1, MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+				!IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getMessageReceivedEvent_Timestamp(), ecorePackage.getEString(), "timestamp", null, 0, 1,
+				MessageReceivedEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		// Initialize data types
 		initEDataType(stringListEDataType, List.class, "StringList", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS,
 				"java.util.List<java.lang.String>");
@@ -2378,6 +2461,11 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 				!IS_GENERATED_INSTANCE_CLASS);
 		initEDataType(floatArrayEDataType, ArrayList.class, "FloatArray", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS,
 				"java.util.ArrayList<java.lang.Float[]>");
+		initEDataType(byteArrayEDataType, byte[].class, "ByteArray", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+		initEDataType(listOfStringMapsEDataType, LinkedList.class, "ListOfStringMaps", IS_SERIALIZABLE,
+				!IS_GENERATED_INSTANCE_CLASS,
+				"java.util.LinkedList<java.util.HashMap<java.lang.String, java.lang.String>>");
+		initEDataType(intArrayEDataType, int[].class, "IntArray", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
 
 		// Create resource
 		createResource(eNS_URI);
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/LocalizableObjectImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/LocalizableObjectImpl.java
index 96a49c7b88c04a75c0025946b21cc57d16b67907..42ae011eeb711158edf64a2aff3bcb70345c7fc3 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/LocalizableObjectImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/LocalizableObjectImpl.java
@@ -2,14 +2,11 @@
  */
 package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
+import ipos.project.DataModellntegration.iPos_Datamodel.Agent;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
 import ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject;
 import ipos.project.DataModellntegration.iPos_Datamodel.Placing;
-import ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor;
-
 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;
 
@@ -23,74 +20,74 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.LocalizableObjectImpl#getPSensor <em>PSensor</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.LocalizableObjectImpl#getCurrentPlacing <em>Current Placing</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.LocalizableObjectImpl#getLastPosUpdate <em>Last Pos Update</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.LocalizableObjectImpl#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.LocalizableObjectImpl#getSensorType <em>Sensor Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.LocalizableObjectImpl#getAgent <em>Agent</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.LocalizableObjectImpl#getCurrentPlacing <em>Current Placing</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class LocalizableObjectImpl extends EntityImpl implements LocalizableObject {
 	/**
-	 * The cached value of the '{@link #getPSensor() <em>PSensor</em>}' reference.
+	 * The default value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getPSensor()
+	 * @see #getLastPosUpdate()
 	 * @generated
 	 * @ordered
 	 */
-	protected PositionSensor pSensor;
+	protected static final String LAST_POS_UPDATE_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getCurrentPlacing() <em>Current Placing</em>}' reference.
+	 * The cached value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getCurrentPlacing()
+	 * @see #getLastPosUpdate()
 	 * @generated
 	 * @ordered
 	 */
-	protected Placing currentPlacing;
+	protected String lastPosUpdate = LAST_POS_UPDATE_EDEFAULT;
 
 	/**
-	 * The default value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * The default value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getLastPosUpdate()
+	 * @see #getSensorType()
 	 * @generated
 	 * @ordered
 	 */
-	protected static final String LAST_POS_UPDATE_EDEFAULT = null;
+	protected static final String SENSOR_TYPE_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * The cached value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getLastPosUpdate()
+	 * @see #getSensorType()
 	 * @generated
 	 * @ordered
 	 */
-	protected String lastPosUpdate = LAST_POS_UPDATE_EDEFAULT;
+	protected String sensorType = SENSOR_TYPE_EDEFAULT;
 
 	/**
-	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * The cached value of the '{@link #getAgent() <em>Agent</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getType()
+	 * @see #getAgent()
 	 * @generated
 	 * @ordered
 	 */
-	protected static final String TYPE_EDEFAULT = null;
+	protected Agent agent;
 
 	/**
-	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * The cached value of the '{@link #getCurrentPlacing() <em>Current Placing</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getType()
+	 * @see #getCurrentPlacing()
 	 * @generated
 	 * @ordered
 	 */
-	protected String type = TYPE_EDEFAULT;
+	protected Placing currentPlacing;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -116,26 +113,8 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public PositionSensor getPSensor() {
-		if (pSensor != null && pSensor.eIsProxy()) {
-			InternalEObject oldPSensor = (InternalEObject) pSensor;
-			pSensor = (PositionSensor) eResolveProxy(oldPSensor);
-			if (pSensor != oldPSensor) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							IPos_DatamodelPackage.LOCALIZABLE_OBJECT__PSENSOR, oldPSensor, pSensor));
-			}
-		}
-		return pSensor;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PositionSensor basicGetPSensor() {
-		return pSensor;
+	public String getLastPosUpdate() {
+		return lastPosUpdate;
 	}
 
 	/**
@@ -143,12 +122,12 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setPSensor(PositionSensor newPSensor) {
-		PositionSensor oldPSensor = pSensor;
-		pSensor = newPSensor;
+	public void setLastPosUpdate(String newLastPosUpdate) {
+		String oldLastPosUpdate = lastPosUpdate;
+		lastPosUpdate = newLastPosUpdate;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.LOCALIZABLE_OBJECT__PSENSOR,
-					oldPSensor, pSensor));
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.LOCALIZABLE_OBJECT__LAST_POS_UPDATE, oldLastPosUpdate, lastPosUpdate));
 	}
 
 	/**
@@ -156,18 +135,8 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Placing getCurrentPlacing() {
-		if (currentPlacing != null && currentPlacing.eIsProxy()) {
-			InternalEObject oldCurrentPlacing = (InternalEObject) currentPlacing;
-			currentPlacing = (Placing) eResolveProxy(oldCurrentPlacing);
-			if (currentPlacing != oldCurrentPlacing) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING, oldCurrentPlacing,
-							currentPlacing));
-			}
-		}
-		return currentPlacing;
+	public String getSensorType() {
+		return sensorType;
 	}
 
 	/**
@@ -175,8 +144,12 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Placing basicGetCurrentPlacing() {
-		return currentPlacing;
+	public void setSensorType(String newSensorType) {
+		String oldSensorType = sensorType;
+		sensorType = newSensorType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.LOCALIZABLE_OBJECT__SENSOR_TYPE,
+					oldSensorType, sensorType));
 	}
 
 	/**
@@ -184,18 +157,17 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetCurrentPlacing(Placing newCurrentPlacing, NotificationChain msgs) {
-		Placing oldCurrentPlacing = currentPlacing;
-		currentPlacing = newCurrentPlacing;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
-					IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING, oldCurrentPlacing, newCurrentPlacing);
-			if (msgs == null)
-				msgs = notification;
-			else
-				msgs.add(notification);
+	public Agent getAgent() {
+		if (agent != null && agent.eIsProxy()) {
+			InternalEObject oldAgent = (InternalEObject) agent;
+			agent = (Agent) eResolveProxy(oldAgent);
+			if (agent != oldAgent) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							IPos_DatamodelPackage.LOCALIZABLE_OBJECT__AGENT, oldAgent, agent));
+			}
 		}
-		return msgs;
+		return agent;
 	}
 
 	/**
@@ -203,21 +175,8 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setCurrentPlacing(Placing newCurrentPlacing) {
-		if (newCurrentPlacing != currentPlacing) {
-			NotificationChain msgs = null;
-			if (currentPlacing != null)
-				msgs = ((InternalEObject) currentPlacing).eInverseRemove(this, IPos_DatamodelPackage.PLACING__LOBJECT,
-						Placing.class, msgs);
-			if (newCurrentPlacing != null)
-				msgs = ((InternalEObject) newCurrentPlacing).eInverseAdd(this, IPos_DatamodelPackage.PLACING__LOBJECT,
-						Placing.class, msgs);
-			msgs = basicSetCurrentPlacing(newCurrentPlacing, msgs);
-			if (msgs != null)
-				msgs.dispatch();
-		} else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING, newCurrentPlacing, newCurrentPlacing));
+	public Agent basicGetAgent() {
+		return agent;
 	}
 
 	/**
@@ -225,21 +184,12 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String getLastPosUpdate() {
-		return lastPosUpdate;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setLastPosUpdate(String newLastPosUpdate) {
-		String oldLastPosUpdate = lastPosUpdate;
-		lastPosUpdate = newLastPosUpdate;
+	public void setAgent(Agent newAgent) {
+		Agent oldAgent = agent;
+		agent = newAgent;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					IPos_DatamodelPackage.LOCALIZABLE_OBJECT__LAST_POS_UPDATE, oldLastPosUpdate, lastPosUpdate));
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.LOCALIZABLE_OBJECT__AGENT,
+					oldAgent, agent));
 	}
 
 	/**
@@ -247,21 +197,18 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setType(String newType) {
-		String oldType = type;
-		type = newType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.LOCALIZABLE_OBJECT__TYPE,
-					oldType, type));
+	public Placing getCurrentPlacing() {
+		if (currentPlacing != null && currentPlacing.eIsProxy()) {
+			InternalEObject oldCurrentPlacing = (InternalEObject) currentPlacing;
+			currentPlacing = (Placing) eResolveProxy(oldCurrentPlacing);
+			if (currentPlacing != oldCurrentPlacing) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING, oldCurrentPlacing,
+							currentPlacing));
+			}
+		}
+		return currentPlacing;
 	}
 
 	/**
@@ -269,16 +216,8 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING:
-			if (currentPlacing != null)
-				msgs = ((InternalEObject) currentPlacing).eInverseRemove(this, IPos_DatamodelPackage.PLACING__LOBJECT,
-						Placing.class, msgs);
-			return basicSetCurrentPlacing((Placing) otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
+	public Placing basicGetCurrentPlacing() {
+		return currentPlacing;
 	}
 
 	/**
@@ -286,13 +225,12 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING:
-			return basicSetCurrentPlacing(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
+	public void setCurrentPlacing(Placing newCurrentPlacing) {
+		Placing oldCurrentPlacing = currentPlacing;
+		currentPlacing = newCurrentPlacing;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING, oldCurrentPlacing, currentPlacing));
 	}
 
 	/**
@@ -303,18 +241,18 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__PSENSOR:
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__LAST_POS_UPDATE:
+			return getLastPosUpdate();
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__SENSOR_TYPE:
+			return getSensorType();
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__AGENT:
 			if (resolve)
-				return getPSensor();
-			return basicGetPSensor();
+				return getAgent();
+			return basicGetAgent();
 		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING:
 			if (resolve)
 				return getCurrentPlacing();
 			return basicGetCurrentPlacing();
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__LAST_POS_UPDATE:
-			return getLastPosUpdate();
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__TYPE:
-			return getType();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -324,20 +262,21 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__PSENSOR:
-			setPSensor((PositionSensor) newValue);
-			return;
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING:
-			setCurrentPlacing((Placing) newValue);
-			return;
 		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__LAST_POS_UPDATE:
 			setLastPosUpdate((String) newValue);
 			return;
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__TYPE:
-			setType((String) newValue);
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__SENSOR_TYPE:
+			setSensorType((String) newValue);
+			return;
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__AGENT:
+			setAgent((Agent) newValue);
+			return;
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING:
+			setCurrentPlacing((Placing) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -351,17 +290,17 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__PSENSOR:
-			setPSensor((PositionSensor) null);
-			return;
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING:
-			setCurrentPlacing((Placing) null);
-			return;
 		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__LAST_POS_UPDATE:
 			setLastPosUpdate(LAST_POS_UPDATE_EDEFAULT);
 			return;
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__TYPE:
-			setType(TYPE_EDEFAULT);
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__SENSOR_TYPE:
+			setSensorType(SENSOR_TYPE_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__AGENT:
+			setAgent((Agent) null);
+			return;
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING:
+			setCurrentPlacing((Placing) null);
 			return;
 		}
 		super.eUnset(featureID);
@@ -375,15 +314,15 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__PSENSOR:
-			return pSensor != null;
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING:
-			return currentPlacing != null;
 		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__LAST_POS_UPDATE:
 			return LAST_POS_UPDATE_EDEFAULT == null ? lastPosUpdate != null
 					: !LAST_POS_UPDATE_EDEFAULT.equals(lastPosUpdate);
-		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__TYPE:
-			return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__SENSOR_TYPE:
+			return SENSOR_TYPE_EDEFAULT == null ? sensorType != null : !SENSOR_TYPE_EDEFAULT.equals(sensorType);
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__AGENT:
+			return agent != null;
+		case IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING:
+			return currentPlacing != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -401,8 +340,8 @@ public class LocalizableObjectImpl extends EntityImpl implements LocalizableObje
 		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (lastPosUpdate: ");
 		result.append(lastPosUpdate);
-		result.append(", type: ");
-		result.append(type);
+		result.append(", sensorType: ");
+		result.append(sensorType);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MessageReceivedEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MessageReceivedEventImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..971b5cf706333fd027209733a10c19e4fd1fda34
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MessageReceivedEventImpl.java
@@ -0,0 +1,392 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Message Received Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getProtocolName <em>Protocol Name</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getSerializedMsg <em>Serialized Msg</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getAgentId <em>Agent Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getExtractedAttributes <em>Extracted Attributes</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.MessageReceivedEventImpl#getTimestamp <em>Timestamp</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MessageReceivedEventImpl extends MinimalEObjectImpl.Container implements MessageReceivedEvent {
+	/**
+	 * The default value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProtocolName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROTOCOL_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProtocolName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String protocolName = PROTOCOL_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSerializedMsg() <em>Serialized Msg</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSerializedMsg()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final byte[] SERIALIZED_MSG_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSerializedMsg() <em>Serialized Msg</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSerializedMsg()
+	 * @generated
+	 * @ordered
+	 */
+	protected byte[] serializedMsg = SERIALIZED_MSG_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AGENT_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAgentId() <em>Agent Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAgentId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String agentId = AGENT_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExtractedAttributes() <em>Extracted Attributes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExtractedAttributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final LinkedList<HashMap<String, String>> EXTRACTED_ATTRIBUTES_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getExtractedAttributes() <em>Extracted Attributes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExtractedAttributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected LinkedList<HashMap<String, String>> extractedAttributes = EXTRACTED_ATTRIBUTES_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimestamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TIMESTAMP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimestamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected String timestamp = TIMESTAMP_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MessageReceivedEventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPos_DatamodelPackage.Literals.MESSAGE_RECEIVED_EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getProtocolName() {
+		return protocolName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProtocolName(String newProtocolName) {
+		String oldProtocolName = protocolName;
+		protocolName = newProtocolName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME, oldProtocolName, protocolName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public byte[] getSerializedMsg() {
+		return serializedMsg;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSerializedMsg(byte[] newSerializedMsg) {
+		byte[] oldSerializedMsg = serializedMsg;
+		serializedMsg = newSerializedMsg;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG, oldSerializedMsg, serializedMsg));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAgentId() {
+		return agentId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAgentId(String newAgentId) {
+		String oldAgentId = agentId;
+		agentId = newAgentId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID, oldAgentId, agentId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LinkedList<HashMap<String, String>> getExtractedAttributes() {
+		return extractedAttributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExtractedAttributes(LinkedList<HashMap<String, String>> newExtractedAttributes) {
+		LinkedList<HashMap<String, String>> oldExtractedAttributes = extractedAttributes;
+		extractedAttributes = newExtractedAttributes;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES, oldExtractedAttributes,
+					extractedAttributes));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTimestamp() {
+		return timestamp;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTimestamp(String newTimestamp) {
+		String oldTimestamp = timestamp;
+		timestamp = newTimestamp;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP, oldTimestamp, timestamp));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME:
+			return getProtocolName();
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG:
+			return getSerializedMsg();
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID:
+			return getAgentId();
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES:
+			return getExtractedAttributes();
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP:
+			return getTimestamp();
+		}
+		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 IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME:
+			setProtocolName((String) newValue);
+			return;
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG:
+			setSerializedMsg((byte[]) newValue);
+			return;
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID:
+			setAgentId((String) newValue);
+			return;
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES:
+			setExtractedAttributes((LinkedList<HashMap<String, String>>) newValue);
+			return;
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP:
+			setTimestamp((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME:
+			setProtocolName(PROTOCOL_NAME_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG:
+			setSerializedMsg(SERIALIZED_MSG_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID:
+			setAgentId(AGENT_ID_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES:
+			setExtractedAttributes(EXTRACTED_ATTRIBUTES_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP:
+			setTimestamp(TIMESTAMP_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__PROTOCOL_NAME:
+			return PROTOCOL_NAME_EDEFAULT == null ? protocolName != null : !PROTOCOL_NAME_EDEFAULT.equals(protocolName);
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__SERIALIZED_MSG:
+			return SERIALIZED_MSG_EDEFAULT == null ? serializedMsg != null
+					: !SERIALIZED_MSG_EDEFAULT.equals(serializedMsg);
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__AGENT_ID:
+			return AGENT_ID_EDEFAULT == null ? agentId != null : !AGENT_ID_EDEFAULT.equals(agentId);
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__EXTRACTED_ATTRIBUTES:
+			return EXTRACTED_ATTRIBUTES_EDEFAULT == null ? extractedAttributes != null
+					: !EXTRACTED_ATTRIBUTES_EDEFAULT.equals(extractedAttributes);
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT__TIMESTAMP:
+			return TIMESTAMP_EDEFAULT == null ? timestamp != null : !TIMESTAMP_EDEFAULT.equals(timestamp);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (protocolName: ");
+		result.append(protocolName);
+		result.append(", serializedMsg: ");
+		result.append(serializedMsg);
+		result.append(", agentId: ");
+		result.append(agentId);
+		result.append(", extractedAttributes: ");
+		result.append(extractedAttributes);
+		result.append(", timestamp: ");
+		result.append(timestamp);
+		result.append(')');
+		return result.toString();
+	}
+
+} //MessageReceivedEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MonitoringRequestImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MonitoringRequestImpl.java
deleted file mode 100644
index 5291bb58bf5d73c376485f35837649e7e569287a..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/MonitoringRequestImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
-
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.MonitoringRequest;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Monitoring Request</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class MonitoringRequestImpl extends MinimalEObjectImpl.Container implements MonitoringRequest {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected MonitoringRequestImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.MONITORING_REQUEST;
-	}
-
-} //MonitoringRequestImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/NFCImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/NFCImpl.java
index c876a1dcedd2669a92d2abf90164d39106ddede6..02dd20a3ca3b0737f38bfc0fbb051e6d76eaa081 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/NFCImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/NFCImpl.java
@@ -10,7 +10,6 @@ import java.util.Map;
 import org.eclipse.emf.common.notify.Notification;
 
 import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
@@ -36,7 +35,7 @@ public class NFCImpl extends ProximityImpl implements NFC {
 	 * @generated
 	 * @ordered
 	 */
-	protected Map<String, EObject> tagData;
+	protected Map<String, Object> tagData;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -62,7 +61,7 @@ public class NFCImpl extends ProximityImpl implements NFC {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Map<String, EObject> getTagData() {
+	public Map<String, Object> getTagData() {
 		return tagData;
 	}
 
@@ -71,8 +70,8 @@ public class NFCImpl extends ProximityImpl implements NFC {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setTagData(Map<String, EObject> newTagData) {
-		Map<String, EObject> oldTagData = tagData;
+	public void setTagData(Map<String, Object> newTagData) {
+		Map<String, Object> oldTagData = tagData;
 		tagData = newTagData;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.NFC__TAG_DATA, oldTagData,
@@ -103,7 +102,7 @@ public class NFCImpl extends ProximityImpl implements NFC {
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.NFC__TAG_DATA:
-			setTagData((Map<String, EObject>) newValue);
+			setTagData((Map<String, Object>) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -118,7 +117,7 @@ public class NFCImpl extends ProximityImpl implements NFC {
 	public void eUnset(int featureID) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.NFC__TAG_DATA:
-			setTagData((Map<String, EObject>) null);
+			setTagData((Map<String, Object>) null);
 			return;
 		}
 		super.eUnset(featureID);
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/NetworkInterfaceImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/NetworkInterfaceImpl.java
deleted file mode 100644
index 92ea5272be3f41fb9765082a329dd98771dc80c4..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/NetworkInterfaceImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
-
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.NetworkInterface;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Network Interface</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class NetworkInterfaceImpl extends MinimalEObjectImpl.Container implements NetworkInterface {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NetworkInterfaceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.NETWORK_INTERFACE;
-	}
-
-} //NetworkInterfaceImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/OtherBeaconImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/OtherBeaconImpl.java
index 9f5be7fe7e8ff69887a6d8c2fb4bda039f67ee25..d9731e044e68622bee9bb387c5d7fe8e0dfd5066 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/OtherBeaconImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/OtherBeaconImpl.java
@@ -10,7 +10,6 @@ import java.util.Map;
 import org.eclipse.emf.common.notify.Notification;
 
 import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
@@ -36,7 +35,7 @@ public class OtherBeaconImpl extends BeaconImpl implements OtherBeacon {
 	 * @generated
 	 * @ordered
 	 */
-	protected Map<String, EObject> data;
+	protected Map<String, Object> data;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -62,7 +61,7 @@ public class OtherBeaconImpl extends BeaconImpl implements OtherBeacon {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Map<String, EObject> getData() {
+	public Map<String, Object> getData() {
 		return data;
 	}
 
@@ -71,8 +70,8 @@ public class OtherBeaconImpl extends BeaconImpl implements OtherBeacon {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setData(Map<String, EObject> newData) {
-		Map<String, EObject> oldData = data;
+	public void setData(Map<String, Object> newData) {
+		Map<String, Object> oldData = data;
 		data = newData;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.OTHER_BEACON__DATA, oldData,
@@ -103,7 +102,7 @@ public class OtherBeaconImpl extends BeaconImpl implements OtherBeacon {
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.OTHER_BEACON__DATA:
-			setData((Map<String, EObject>) newValue);
+			setData((Map<String, Object>) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -118,7 +117,7 @@ public class OtherBeaconImpl extends BeaconImpl implements OtherBeacon {
 	public void eUnset(int featureID) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.OTHER_BEACON__DATA:
-			setData((Map<String, EObject>) null);
+			setData((Map<String, Object>) null);
 			return;
 		}
 		super.eUnset(featureID);
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/OtherProxImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/OtherProxImpl.java
index e676358e0cdfb8d1be36a25551511093b1ef80bd..564bb22feabbcab1dec7032faf29e54197ec478c 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/OtherProxImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/OtherProxImpl.java
@@ -10,7 +10,6 @@ import java.util.Map;
 import org.eclipse.emf.common.notify.Notification;
 
 import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
@@ -36,7 +35,7 @@ public class OtherProxImpl extends ProximityImpl implements OtherProx {
 	 * @generated
 	 * @ordered
 	 */
-	protected Map<String, EObject> data;
+	protected Map<String, Object> data;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -62,7 +61,7 @@ public class OtherProxImpl extends ProximityImpl implements OtherProx {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Map<String, EObject> getData() {
+	public Map<String, Object> getData() {
 		return data;
 	}
 
@@ -71,8 +70,8 @@ public class OtherProxImpl extends ProximityImpl implements OtherProx {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setData(Map<String, EObject> newData) {
-		Map<String, EObject> oldData = data;
+	public void setData(Map<String, Object> newData) {
+		Map<String, Object> oldData = data;
 		data = newData;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.OTHER_PROX__DATA, oldData,
@@ -103,7 +102,7 @@ public class OtherProxImpl extends ProximityImpl implements OtherProx {
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.OTHER_PROX__DATA:
-			setData((Map<String, EObject>) newValue);
+			setData((Map<String, Object>) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -118,7 +117,7 @@ public class OtherProxImpl extends ProximityImpl implements OtherProx {
 	public void eUnset(int featureID) {
 		switch (featureID) {
 		case IPos_DatamodelPackage.OTHER_PROX__DATA:
-			setData((Map<String, EObject>) null);
+			setData((Map<String, Object>) null);
 			return;
 		}
 		super.eUnset(featureID);
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/POIImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/POIImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..9b2e20ab0a0008f76668c5bf3b432773661e7a01
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/POIImpl.java
@@ -0,0 +1,331 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.POI;
+import ipos.project.DataModellntegration.iPos_Datamodel.Placing;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>POI</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.POIImpl#getPlacing <em>Placing</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.POIImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.POIImpl#getData <em>Data</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.POIImpl#getId <em>Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class POIImpl extends MinimalEObjectImpl.Container implements POI {
+	/**
+	 * The cached value of the '{@link #getPlacing() <em>Placing</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPlacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected Placing placing;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getData() <em>Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getData()
+	 * @generated
+	 * @ordered
+	 */
+	protected Map<String, String> data;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected POIImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPos_DatamodelPackage.Literals.POI;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Placing getPlacing() {
+		if (placing != null && placing.eIsProxy()) {
+			InternalEObject oldPlacing = (InternalEObject) placing;
+			placing = (Placing) eResolveProxy(oldPlacing);
+			if (placing != oldPlacing) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, IPos_DatamodelPackage.POI__PLACING,
+							oldPlacing, placing));
+			}
+		}
+		return placing;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Placing basicGetPlacing() {
+		return placing;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPlacing(Placing newPlacing) {
+		Placing oldPlacing = placing;
+		placing = newPlacing;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POI__PLACING, oldPlacing,
+					placing));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POI__DESCRIPTION,
+					oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Map<String, String> getData() {
+		return data;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setData(Map<String, String> newData) {
+		Map<String, String> oldData = data;
+		data = newData;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POI__DATA, oldData, data));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POI__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.POI__PLACING:
+			if (resolve)
+				return getPlacing();
+			return basicGetPlacing();
+		case IPos_DatamodelPackage.POI__DESCRIPTION:
+			return getDescription();
+		case IPos_DatamodelPackage.POI__DATA:
+			return getData();
+		case IPos_DatamodelPackage.POI__ID:
+			return getId();
+		}
+		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 IPos_DatamodelPackage.POI__PLACING:
+			setPlacing((Placing) newValue);
+			return;
+		case IPos_DatamodelPackage.POI__DESCRIPTION:
+			setDescription((String) newValue);
+			return;
+		case IPos_DatamodelPackage.POI__DATA:
+			setData((Map<String, String>) newValue);
+			return;
+		case IPos_DatamodelPackage.POI__ID:
+			setId((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.POI__PLACING:
+			setPlacing((Placing) null);
+			return;
+		case IPos_DatamodelPackage.POI__DESCRIPTION:
+			setDescription(DESCRIPTION_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.POI__DATA:
+			setData((Map<String, String>) null);
+			return;
+		case IPos_DatamodelPackage.POI__ID:
+			setId(ID_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.POI__PLACING:
+			return placing != null;
+		case IPos_DatamodelPackage.POI__DESCRIPTION:
+			return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+		case IPos_DatamodelPackage.POI__DATA:
+			return data != null;
+		case IPos_DatamodelPackage.POI__ID:
+			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (description: ");
+		result.append(description);
+		result.append(", data: ");
+		result.append(data);
+		result.append(", id: ");
+		result.append(id);
+		result.append(')');
+		return result.toString();
+	}
+
+} //POIImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PlacingImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PlacingImpl.java
index 4b20757e1796103f23f5c08bacd51f0d571b1680..bea7fad65df80238e586e92372830ae7549c7d00 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PlacingImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PlacingImpl.java
@@ -3,13 +3,11 @@
 package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject;
 import ipos.project.DataModellntegration.iPos_Datamodel.Orientation;
 import ipos.project.DataModellntegration.iPos_Datamodel.Placing;
 import ipos.project.DataModellntegration.iPos_Datamodel.Position;
 
 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;
@@ -25,7 +23,6 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PlacingImpl#getLObject <em>LObject</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PlacingImpl#getPosition <em>Position</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PlacingImpl#getOrientation <em>Orientation</em>}</li>
  * </ul>
@@ -33,16 +30,6 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
  * @generated
  */
 public class PlacingImpl extends MinimalEObjectImpl.Container implements Placing {
-	/**
-	 * The cached value of the '{@link #getLObject() <em>LObject</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLObject()
-	 * @generated
-	 * @ordered
-	 */
-	protected LocalizableObject lObject;
-
 	/**
 	 * The cached value of the '{@link #getPosition() <em>Position</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -82,74 +69,6 @@ public class PlacingImpl extends MinimalEObjectImpl.Container implements Placing
 		return IPos_DatamodelPackage.Literals.PLACING;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LocalizableObject getLObject() {
-		if (lObject != null && lObject.eIsProxy()) {
-			InternalEObject oldLObject = (InternalEObject) lObject;
-			lObject = (LocalizableObject) eResolveProxy(oldLObject);
-			if (lObject != oldLObject) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, IPos_DatamodelPackage.PLACING__LOBJECT,
-							oldLObject, lObject));
-			}
-		}
-		return lObject;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LocalizableObject basicGetLObject() {
-		return lObject;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetLObject(LocalizableObject newLObject, NotificationChain msgs) {
-		LocalizableObject oldLObject = lObject;
-		lObject = newLObject;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
-					IPos_DatamodelPackage.PLACING__LOBJECT, oldLObject, newLObject);
-			if (msgs == null)
-				msgs = notification;
-			else
-				msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setLObject(LocalizableObject newLObject) {
-		if (newLObject != lObject) {
-			NotificationChain msgs = null;
-			if (lObject != null)
-				msgs = ((InternalEObject) lObject).eInverseRemove(this,
-						IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING, LocalizableObject.class, msgs);
-			if (newLObject != null)
-				msgs = ((InternalEObject) newLObject).eInverseAdd(this,
-						IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING, LocalizableObject.class, msgs);
-			msgs = basicSetLObject(newLObject, msgs);
-			if (msgs != null)
-				msgs.dispatch();
-		} else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.PLACING__LOBJECT, newLObject,
-					newLObject));
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -230,37 +149,6 @@ public class PlacingImpl extends MinimalEObjectImpl.Container implements Placing
 					oldOrientation, orientation));
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.PLACING__LOBJECT:
-			if (lObject != null)
-				msgs = ((InternalEObject) lObject).eInverseRemove(this,
-						IPos_DatamodelPackage.LOCALIZABLE_OBJECT__CURRENT_PLACING, LocalizableObject.class, msgs);
-			return basicSetLObject((LocalizableObject) otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.PLACING__LOBJECT:
-			return basicSetLObject(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -269,10 +157,6 @@ public class PlacingImpl extends MinimalEObjectImpl.Container implements Placing
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.PLACING__LOBJECT:
-			if (resolve)
-				return getLObject();
-			return basicGetLObject();
 		case IPos_DatamodelPackage.PLACING__POSITION:
 			if (resolve)
 				return getPosition();
@@ -293,9 +177,6 @@ public class PlacingImpl extends MinimalEObjectImpl.Container implements Placing
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.PLACING__LOBJECT:
-			setLObject((LocalizableObject) newValue);
-			return;
 		case IPos_DatamodelPackage.PLACING__POSITION:
 			setPosition((Position) newValue);
 			return;
@@ -314,9 +195,6 @@ public class PlacingImpl extends MinimalEObjectImpl.Container implements Placing
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.PLACING__LOBJECT:
-			setLObject((LocalizableObject) null);
-			return;
 		case IPos_DatamodelPackage.PLACING__POSITION:
 			setPosition((Position) null);
 			return;
@@ -335,8 +213,6 @@ public class PlacingImpl extends MinimalEObjectImpl.Container implements Placing
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.PLACING__LOBJECT:
-			return lObject != null;
 		case IPos_DatamodelPackage.PLACING__POSITION:
 			return position != null;
 		case IPos_DatamodelPackage.PLACING__ORIENTATION:
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionEventImpl.java
index bee60d5820e8bd1fc4a809b11fca1df84dda0b1e..c900e0efacc0a952ce17df3781324dae5eba0ee3 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionEventImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionEventImpl.java
@@ -5,15 +5,22 @@ package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
 import ipos.project.DataModellntegration.iPos_Datamodel.Placing;
 import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+
+import java.util.Collection;
 
 import org.eclipse.emf.common.notify.Notification;
 
+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 org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Position Event</b></em>'.
@@ -22,42 +29,74 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl#getPlacing <em>Placing</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl#getTimeStamp <em>Time Stamp</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl#getLObjectId <em>LObject Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl#getZonedescriptors <em>Zonedescriptors</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionEventImpl#getPlacing <em>Placing</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class PositionEventImpl extends MinimalEObjectImpl.Container implements PositionEvent {
 	/**
-	 * The cached value of the '{@link #getPlacing() <em>Placing</em>}' reference.
+	 * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getPlacing()
+	 * @see #getTimeStamp()
 	 * @generated
 	 * @ordered
 	 */
-	protected Placing placing;
+	protected static final String TIME_STAMP_EDEFAULT = null;
 
 	/**
-	 * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * The cached value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #getTimeStamp()
 	 * @generated
 	 * @ordered
 	 */
-	protected static final String TIME_STAMP_EDEFAULT = null;
+	protected String timeStamp = TIME_STAMP_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * The default value of the '{@link #getLObjectId() <em>LObject Id</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getTimeStamp()
+	 * @see #getLObjectId()
 	 * @generated
 	 * @ordered
 	 */
-	protected String timeStamp = TIME_STAMP_EDEFAULT;
+	protected static final String LOBJECT_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLObjectId() <em>LObject Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLObjectId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String lObjectId = LOBJECT_ID_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getZonedescriptors() <em>Zonedescriptors</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZonedescriptors()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ZoneDescriptor> zonedescriptors;
+
+	/**
+	 * The cached value of the '{@link #getPlacing() <em>Placing</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPlacing()
+	 * @generated
+	 * @ordered
+	 */
+	protected Placing placing;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -140,6 +179,41 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 					oldTimeStamp, timeStamp));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLObjectId() {
+		return lObjectId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLObjectId(String newLObjectId) {
+		String oldLObjectId = lObjectId;
+		lObjectId = newLObjectId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POSITION_EVENT__LOBJECT_ID,
+					oldLObjectId, lObjectId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<ZoneDescriptor> getZonedescriptors() {
+		if (zonedescriptors == null) {
+			zonedescriptors = new EObjectResolvingEList<ZoneDescriptor>(ZoneDescriptor.class, this,
+					IPos_DatamodelPackage.POSITION_EVENT__ZONEDESCRIPTORS);
+		}
+		return zonedescriptors;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -148,12 +222,16 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+		case IPos_DatamodelPackage.POSITION_EVENT__TIME_STAMP:
+			return getTimeStamp();
+		case IPos_DatamodelPackage.POSITION_EVENT__LOBJECT_ID:
+			return getLObjectId();
+		case IPos_DatamodelPackage.POSITION_EVENT__ZONEDESCRIPTORS:
+			return getZonedescriptors();
 		case IPos_DatamodelPackage.POSITION_EVENT__PLACING:
 			if (resolve)
 				return getPlacing();
 			return basicGetPlacing();
-		case IPos_DatamodelPackage.POSITION_EVENT__TIME_STAMP:
-			return getTimeStamp();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -163,15 +241,23 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.POSITION_EVENT__PLACING:
-			setPlacing((Placing) newValue);
-			return;
 		case IPos_DatamodelPackage.POSITION_EVENT__TIME_STAMP:
 			setTimeStamp((String) newValue);
 			return;
+		case IPos_DatamodelPackage.POSITION_EVENT__LOBJECT_ID:
+			setLObjectId((String) newValue);
+			return;
+		case IPos_DatamodelPackage.POSITION_EVENT__ZONEDESCRIPTORS:
+			getZonedescriptors().clear();
+			getZonedescriptors().addAll((Collection<? extends ZoneDescriptor>) newValue);
+			return;
+		case IPos_DatamodelPackage.POSITION_EVENT__PLACING:
+			setPlacing((Placing) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -184,12 +270,18 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.POSITION_EVENT__PLACING:
-			setPlacing((Placing) null);
-			return;
 		case IPos_DatamodelPackage.POSITION_EVENT__TIME_STAMP:
 			setTimeStamp(TIME_STAMP_EDEFAULT);
 			return;
+		case IPos_DatamodelPackage.POSITION_EVENT__LOBJECT_ID:
+			setLObjectId(LOBJECT_ID_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.POSITION_EVENT__ZONEDESCRIPTORS:
+			getZonedescriptors().clear();
+			return;
+		case IPos_DatamodelPackage.POSITION_EVENT__PLACING:
+			setPlacing((Placing) null);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -202,10 +294,14 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.POSITION_EVENT__PLACING:
-			return placing != null;
 		case IPos_DatamodelPackage.POSITION_EVENT__TIME_STAMP:
 			return TIME_STAMP_EDEFAULT == null ? timeStamp != null : !TIME_STAMP_EDEFAULT.equals(timeStamp);
+		case IPos_DatamodelPackage.POSITION_EVENT__LOBJECT_ID:
+			return LOBJECT_ID_EDEFAULT == null ? lObjectId != null : !LOBJECT_ID_EDEFAULT.equals(lObjectId);
+		case IPos_DatamodelPackage.POSITION_EVENT__ZONEDESCRIPTORS:
+			return zonedescriptors != null && !zonedescriptors.isEmpty();
+		case IPos_DatamodelPackage.POSITION_EVENT__PLACING:
+			return placing != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -223,6 +319,8 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (timeStamp: ");
 		result.append(timeStamp);
+		result.append(", lObjectId: ");
+		result.append(lObjectId);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionImpl.java
index 62e0e069c64f7b4bf3873b0bde8a29480cd7fe6e..e98eb26df56479dfcac5d1df0f187749634bea9a 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionImpl.java
@@ -4,7 +4,9 @@ package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.Accuracy;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.Point;
 import ipos.project.DataModellntegration.iPos_Datamodel.Position;
+import ipos.project.DataModellntegration.iPos_Datamodel.ReferenceSystem;
 
 import org.eclipse.emf.common.notify.Notification;
 
@@ -23,6 +25,8 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
  * </p>
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionImpl#getAccuracy <em>Accuracy</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionImpl#getPoint <em>Point</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionImpl#getReferenceSystem <em>Reference System</em>}</li>
  * </ul>
  *
  * @generated
@@ -38,6 +42,26 @@ public class PositionImpl extends MinimalEObjectImpl.Container implements Positi
 	 */
 	protected Accuracy accuracy;
 
+	/**
+	 * The cached value of the '{@link #getPoint() <em>Point</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected Point point;
+
+	/**
+	 * The cached value of the '{@link #getReferenceSystem() <em>Reference System</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReferenceSystem()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReferenceSystem referenceSystem;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -97,6 +121,86 @@ public class PositionImpl extends MinimalEObjectImpl.Container implements Positi
 					accuracy));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Point getPoint() {
+		if (point != null && point.eIsProxy()) {
+			InternalEObject oldPoint = (InternalEObject) point;
+			point = (Point) eResolveProxy(oldPoint);
+			if (point != oldPoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, IPos_DatamodelPackage.POSITION__POINT,
+							oldPoint, point));
+			}
+		}
+		return point;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Point basicGetPoint() {
+		return point;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPoint(Point newPoint) {
+		Point oldPoint = point;
+		point = newPoint;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POSITION__POINT, oldPoint,
+					point));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferenceSystem getReferenceSystem() {
+		if (referenceSystem != null && referenceSystem.eIsProxy()) {
+			InternalEObject oldReferenceSystem = (InternalEObject) referenceSystem;
+			referenceSystem = (ReferenceSystem) eResolveProxy(oldReferenceSystem);
+			if (referenceSystem != oldReferenceSystem) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							IPos_DatamodelPackage.POSITION__REFERENCE_SYSTEM, oldReferenceSystem, referenceSystem));
+			}
+		}
+		return referenceSystem;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferenceSystem basicGetReferenceSystem() {
+		return referenceSystem;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReferenceSystem(ReferenceSystem newReferenceSystem) {
+		ReferenceSystem oldReferenceSystem = referenceSystem;
+		referenceSystem = newReferenceSystem;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POSITION__REFERENCE_SYSTEM,
+					oldReferenceSystem, referenceSystem));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -109,6 +213,14 @@ public class PositionImpl extends MinimalEObjectImpl.Container implements Positi
 			if (resolve)
 				return getAccuracy();
 			return basicGetAccuracy();
+		case IPos_DatamodelPackage.POSITION__POINT:
+			if (resolve)
+				return getPoint();
+			return basicGetPoint();
+		case IPos_DatamodelPackage.POSITION__REFERENCE_SYSTEM:
+			if (resolve)
+				return getReferenceSystem();
+			return basicGetReferenceSystem();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -124,6 +236,12 @@ public class PositionImpl extends MinimalEObjectImpl.Container implements Positi
 		case IPos_DatamodelPackage.POSITION__ACCURACY:
 			setAccuracy((Accuracy) newValue);
 			return;
+		case IPos_DatamodelPackage.POSITION__POINT:
+			setPoint((Point) newValue);
+			return;
+		case IPos_DatamodelPackage.POSITION__REFERENCE_SYSTEM:
+			setReferenceSystem((ReferenceSystem) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -139,6 +257,12 @@ public class PositionImpl extends MinimalEObjectImpl.Container implements Positi
 		case IPos_DatamodelPackage.POSITION__ACCURACY:
 			setAccuracy((Accuracy) null);
 			return;
+		case IPos_DatamodelPackage.POSITION__POINT:
+			setPoint((Point) null);
+			return;
+		case IPos_DatamodelPackage.POSITION__REFERENCE_SYSTEM:
+			setReferenceSystem((ReferenceSystem) null);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -153,6 +277,10 @@ public class PositionImpl extends MinimalEObjectImpl.Container implements Positi
 		switch (featureID) {
 		case IPos_DatamodelPackage.POSITION__ACCURACY:
 			return accuracy != null;
+		case IPos_DatamodelPackage.POSITION__POINT:
+			return point != null;
+		case IPos_DatamodelPackage.POSITION__REFERENCE_SYSTEM:
+			return referenceSystem != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionSensorImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionSensorImpl.java
deleted file mode 100644
index 49c0bcfd908952cc5c44ea457415bdc3905919b5..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/PositionSensorImpl.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
-
-import ipos.project.DataModellntegration.iPos_Datamodel.Agent;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject;
-import ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Position Sensor</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionSensorImpl#getAgent <em>Agent</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionSensorImpl#getLObject <em>LObject</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.PositionSensorImpl#getType <em>Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class PositionSensorImpl extends EntityImpl implements PositionSensor {
-	/**
-	 * The cached value of the '{@link #getAgent() <em>Agent</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAgent()
-	 * @generated
-	 * @ordered
-	 */
-	protected Agent agent;
-
-	/**
-	 * The cached value of the '{@link #getLObject() <em>LObject</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLObject()
-	 * @generated
-	 * @ordered
-	 */
-	protected LocalizableObject lObject;
-
-	/**
-	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getType()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getType()
-	 * @generated
-	 * @ordered
-	 */
-	protected String type = TYPE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PositionSensorImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.POSITION_SENSOR;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Agent getAgent() {
-		if (agent != null && agent.eIsProxy()) {
-			InternalEObject oldAgent = (InternalEObject) agent;
-			agent = (Agent) eResolveProxy(oldAgent);
-			if (agent != oldAgent) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							IPos_DatamodelPackage.POSITION_SENSOR__AGENT, oldAgent, agent));
-			}
-		}
-		return agent;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Agent basicGetAgent() {
-		return agent;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setAgent(Agent newAgent) {
-		Agent oldAgent = agent;
-		agent = newAgent;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POSITION_SENSOR__AGENT,
-					oldAgent, agent));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LocalizableObject getLObject() {
-		if (lObject != null && lObject.eIsProxy()) {
-			InternalEObject oldLObject = (InternalEObject) lObject;
-			lObject = (LocalizableObject) eResolveProxy(oldLObject);
-			if (lObject != oldLObject) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							IPos_DatamodelPackage.POSITION_SENSOR__LOBJECT, oldLObject, lObject));
-			}
-		}
-		return lObject;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LocalizableObject basicGetLObject() {
-		return lObject;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setLObject(LocalizableObject newLObject) {
-		LocalizableObject oldLObject = lObject;
-		lObject = newLObject;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POSITION_SENSOR__LOBJECT,
-					oldLObject, lObject));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setType(String newType) {
-		String oldType = type;
-		type = newType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.POSITION_SENSOR__TYPE, oldType,
-					type));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.POSITION_SENSOR__AGENT:
-			if (resolve)
-				return getAgent();
-			return basicGetAgent();
-		case IPos_DatamodelPackage.POSITION_SENSOR__LOBJECT:
-			if (resolve)
-				return getLObject();
-			return basicGetLObject();
-		case IPos_DatamodelPackage.POSITION_SENSOR__TYPE:
-			return getType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.POSITION_SENSOR__AGENT:
-			setAgent((Agent) newValue);
-			return;
-		case IPos_DatamodelPackage.POSITION_SENSOR__LOBJECT:
-			setLObject((LocalizableObject) newValue);
-			return;
-		case IPos_DatamodelPackage.POSITION_SENSOR__TYPE:
-			setType((String) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.POSITION_SENSOR__AGENT:
-			setAgent((Agent) null);
-			return;
-		case IPos_DatamodelPackage.POSITION_SENSOR__LOBJECT:
-			setLObject((LocalizableObject) null);
-			return;
-		case IPos_DatamodelPackage.POSITION_SENSOR__TYPE:
-			setType(TYPE_EDEFAULT);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.POSITION_SENSOR__AGENT:
-			return agent != null;
-		case IPos_DatamodelPackage.POSITION_SENSOR__LOBJECT:
-			return lObject != null;
-		case IPos_DatamodelPackage.POSITION_SENSOR__TYPE:
-			return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy())
-			return super.toString();
-
-		StringBuilder result = new StringBuilder(super.toString());
-		result.append(" (type: ");
-		result.append(type);
-		result.append(')');
-		return result.toString();
-	}
-
-} //PositionSensorImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ProximityImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ProximityImpl.java
index 3dccb64502adb01908962eabea8cfe8253430b59..33583af94f682e045b70a044a294b2c1d2791cd6 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ProximityImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ProximityImpl.java
@@ -26,7 +26,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
  *
  * @generated
  */
-public class ProximityImpl extends RawdataImpl implements Proximity {
+public class ProximityImpl extends RawdataEventImpl implements Proximity {
 	/**
 	 * The default value of the '{@link #getTagId() <em>Tag Id</em>}' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RawdataEventImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RawdataEventImpl.java
index 5648bc0da0a289ec7eef16a07178e1dd5e2b53d5..e0b7832135b6a2ea18766707a6e8dbc45af38b1c 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RawdataEventImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RawdataEventImpl.java
@@ -3,19 +3,15 @@
 package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.Rawdata;
 import ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent;
 
-import java.util.Collection;
-
-import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.notify.Notification;
 
 import org.eclipse.emf.ecore.EClass;
 
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
-import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Rawdata Event</b></em>'.
@@ -24,21 +20,31 @@ import org.eclipse.emf.ecore.util.EObjectResolvingEList;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl#getRawdata <em>Rawdata</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RawdataEventImpl#getTimeStamp <em>Time Stamp</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class RawdataEventImpl extends MinimalEObjectImpl.Container implements RawdataEvent {
 	/**
-	 * The cached value of the '{@link #getRawdata() <em>Rawdata</em>}' reference list.
+	 * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getRawdata()
+	 * @see #getTimeStamp()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<Rawdata> rawdata;
+	protected static final String TIME_STAMP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimeStamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected String timeStamp = TIME_STAMP_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -64,12 +70,21 @@ public class RawdataEventImpl extends MinimalEObjectImpl.Container implements Ra
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EList<Rawdata> getRawdata() {
-		if (rawdata == null) {
-			rawdata = new EObjectResolvingEList<Rawdata>(Rawdata.class, this,
-					IPos_DatamodelPackage.RAWDATA_EVENT__RAWDATA);
-		}
-		return rawdata;
+	public String getTimeStamp() {
+		return timeStamp;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTimeStamp(String newTimeStamp) {
+		String oldTimeStamp = timeStamp;
+		timeStamp = newTimeStamp;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.RAWDATA_EVENT__TIME_STAMP,
+					oldTimeStamp, timeStamp));
 	}
 
 	/**
@@ -80,8 +95,8 @@ public class RawdataEventImpl extends MinimalEObjectImpl.Container implements Ra
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.RAWDATA_EVENT__RAWDATA:
-			return getRawdata();
+		case IPos_DatamodelPackage.RAWDATA_EVENT__TIME_STAMP:
+			return getTimeStamp();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -91,13 +106,11 @@ public class RawdataEventImpl extends MinimalEObjectImpl.Container implements Ra
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.RAWDATA_EVENT__RAWDATA:
-			getRawdata().clear();
-			getRawdata().addAll((Collection<? extends Rawdata>) newValue);
+		case IPos_DatamodelPackage.RAWDATA_EVENT__TIME_STAMP:
+			setTimeStamp((String) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -111,8 +124,8 @@ public class RawdataEventImpl extends MinimalEObjectImpl.Container implements Ra
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.RAWDATA_EVENT__RAWDATA:
-			getRawdata().clear();
+		case IPos_DatamodelPackage.RAWDATA_EVENT__TIME_STAMP:
+			setTimeStamp(TIME_STAMP_EDEFAULT);
 			return;
 		}
 		super.eUnset(featureID);
@@ -126,10 +139,27 @@ public class RawdataEventImpl extends MinimalEObjectImpl.Container implements Ra
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-		case IPos_DatamodelPackage.RAWDATA_EVENT__RAWDATA:
-			return rawdata != null && !rawdata.isEmpty();
+		case IPos_DatamodelPackage.RAWDATA_EVENT__TIME_STAMP:
+			return TIME_STAMP_EDEFAULT == null ? timeStamp != null : !TIME_STAMP_EDEFAULT.equals(timeStamp);
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (timeStamp: ");
+		result.append(timeStamp);
+		result.append(')');
+		return result.toString();
+	}
+
 } //RawdataEventImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ReferencePositionImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ReferencePositionImpl.java
deleted file mode 100644
index 66867aba7a20b2bca4097a6c1442bbbfcdffbc51..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ReferencePositionImpl.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
-
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.Position;
-import ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition;
-
-import org.eclipse.emf.common.notify.Notification;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Reference Position</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ReferencePositionImpl#getPosition <em>Position</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ReferencePositionImpl#getId <em>Id</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ReferencePositionImpl extends MinimalEObjectImpl.Container implements ReferencePosition {
-	/**
-	 * The cached value of the '{@link #getPosition() <em>Position</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPosition()
-	 * @generated
-	 * @ordered
-	 */
-	protected Position position;
-
-	/**
-	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getId()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String ID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getId()
-	 * @generated
-	 * @ordered
-	 */
-	protected String id = ID_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ReferencePositionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.REFERENCE_POSITION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Position getPosition() {
-		if (position != null && position.eIsProxy()) {
-			InternalEObject oldPosition = (InternalEObject) position;
-			position = (Position) eResolveProxy(oldPosition);
-			if (position != oldPosition) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							IPos_DatamodelPackage.REFERENCE_POSITION__POSITION, oldPosition, position));
-			}
-		}
-		return position;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Position basicGetPosition() {
-		return position;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPosition(Position newPosition) {
-		Position oldPosition = position;
-		position = newPosition;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.REFERENCE_POSITION__POSITION,
-					oldPosition, position));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setId(String newId) {
-		String oldId = id;
-		id = newId;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.REFERENCE_POSITION__ID, oldId,
-					id));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.REFERENCE_POSITION__POSITION:
-			if (resolve)
-				return getPosition();
-			return basicGetPosition();
-		case IPos_DatamodelPackage.REFERENCE_POSITION__ID:
-			return getId();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.REFERENCE_POSITION__POSITION:
-			setPosition((Position) newValue);
-			return;
-		case IPos_DatamodelPackage.REFERENCE_POSITION__ID:
-			setId((String) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.REFERENCE_POSITION__POSITION:
-			setPosition((Position) null);
-			return;
-		case IPos_DatamodelPackage.REFERENCE_POSITION__ID:
-			setId(ID_EDEFAULT);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.REFERENCE_POSITION__POSITION:
-			return position != null;
-		case IPos_DatamodelPackage.REFERENCE_POSITION__ID:
-			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy())
-			return super.toString();
-
-		StringBuilder result = new StringBuilder(super.toString());
-		result.append(" (id: ");
-		result.append(id);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ReferencePositionImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RelativePositionImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RelativePositionImpl.java
deleted file mode 100644
index 30262a5e66dd4d95940044f86073e4e4a71b2d34..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/RelativePositionImpl.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
- */
-package ipos.project.DataModellntegration.iPos_Datamodel.impl;
-
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
-import ipos.project.DataModellntegration.iPos_Datamodel.Point;
-import ipos.project.DataModellntegration.iPos_Datamodel.ReferenceSystem;
-import ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Relative Position</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RelativePositionImpl#getReference <em>Reference</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.RelativePositionImpl#getPoint <em>Point</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class RelativePositionImpl extends PositionImpl implements RelativePosition {
-	/**
-	 * The cached value of the '{@link #getReference() <em>Reference</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getReference()
-	 * @generated
-	 * @ordered
-	 */
-	protected ReferenceSystem reference;
-
-	/**
-	 * The cached value of the '{@link #getPoint() <em>Point</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPoint()
-	 * @generated
-	 * @ordered
-	 */
-	protected Point point;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected RelativePositionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return IPos_DatamodelPackage.Literals.RELATIVE_POSITION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ReferenceSystem getReference() {
-		if (reference != null && reference.eIsProxy()) {
-			InternalEObject oldReference = (InternalEObject) reference;
-			reference = (ReferenceSystem) eResolveProxy(oldReference);
-			if (reference != oldReference) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							IPos_DatamodelPackage.RELATIVE_POSITION__REFERENCE, oldReference, reference));
-			}
-		}
-		return reference;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ReferenceSystem basicGetReference() {
-		return reference;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setReference(ReferenceSystem newReference) {
-		ReferenceSystem oldReference = reference;
-		reference = newReference;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.RELATIVE_POSITION__REFERENCE,
-					oldReference, reference));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Point getPoint() {
-		if (point != null && point.eIsProxy()) {
-			InternalEObject oldPoint = (InternalEObject) point;
-			point = (Point) eResolveProxy(oldPoint);
-			if (point != oldPoint) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							IPos_DatamodelPackage.RELATIVE_POSITION__POINT, oldPoint, point));
-			}
-		}
-		return point;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Point basicGetPoint() {
-		return point;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPoint(Point newPoint) {
-		Point oldPoint = point;
-		point = newPoint;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.RELATIVE_POSITION__POINT,
-					oldPoint, point));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.RELATIVE_POSITION__REFERENCE:
-			if (resolve)
-				return getReference();
-			return basicGetReference();
-		case IPos_DatamodelPackage.RELATIVE_POSITION__POINT:
-			if (resolve)
-				return getPoint();
-			return basicGetPoint();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.RELATIVE_POSITION__REFERENCE:
-			setReference((ReferenceSystem) newValue);
-			return;
-		case IPos_DatamodelPackage.RELATIVE_POSITION__POINT:
-			setPoint((Point) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.RELATIVE_POSITION__REFERENCE:
-			setReference((ReferenceSystem) null);
-			return;
-		case IPos_DatamodelPackage.RELATIVE_POSITION__POINT:
-			setPoint((Point) null);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case IPos_DatamodelPackage.RELATIVE_POSITION__REFERENCE:
-			return reference != null;
-		case IPos_DatamodelPackage.RELATIVE_POSITION__POINT:
-			return point != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //RelativePositionImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/SpaceImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/SpaceImpl.java
index 028252acf2eef0055d652fbf9c593cdc275ebe7f..e402c02c8bd234e2954c6a502bcfa3faae2238d0 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/SpaceImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/SpaceImpl.java
@@ -3,11 +3,13 @@
 package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.Placing;
 import ipos.project.DataModellntegration.iPos_Datamodel.Space;
 
 import org.eclipse.emf.common.notify.Notification;
 
 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;
@@ -23,6 +25,7 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.SpaceImpl#getX <em>X</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.SpaceImpl#getY <em>Y</em>}</li>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.SpaceImpl#getZ <em>Z</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.SpaceImpl#getCentrePoint <em>Centre Point</em>}</li>
  * </ul>
  *
  * @generated
@@ -88,6 +91,16 @@ public class SpaceImpl extends MinimalEObjectImpl.Container implements Space {
 	 */
 	protected float z = Z_EDEFAULT;
 
+	/**
+	 * The cached value of the '{@link #getCentrePoint() <em>Centre Point</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCentrePoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected Placing centrePoint;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -170,6 +183,46 @@ public class SpaceImpl extends MinimalEObjectImpl.Container implements Space {
 			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.SPACE__Z, oldZ, z));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Placing getCentrePoint() {
+		if (centrePoint != null && centrePoint.eIsProxy()) {
+			InternalEObject oldCentrePoint = (InternalEObject) centrePoint;
+			centrePoint = (Placing) eResolveProxy(oldCentrePoint);
+			if (centrePoint != oldCentrePoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, IPos_DatamodelPackage.SPACE__CENTRE_POINT,
+							oldCentrePoint, centrePoint));
+			}
+		}
+		return centrePoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Placing basicGetCentrePoint() {
+		return centrePoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCentrePoint(Placing newCentrePoint) {
+		Placing oldCentrePoint = centrePoint;
+		centrePoint = newCentrePoint;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.SPACE__CENTRE_POINT,
+					oldCentrePoint, centrePoint));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -184,6 +237,10 @@ public class SpaceImpl extends MinimalEObjectImpl.Container implements Space {
 			return getY();
 		case IPos_DatamodelPackage.SPACE__Z:
 			return getZ();
+		case IPos_DatamodelPackage.SPACE__CENTRE_POINT:
+			if (resolve)
+				return getCentrePoint();
+			return basicGetCentrePoint();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -205,6 +262,9 @@ public class SpaceImpl extends MinimalEObjectImpl.Container implements Space {
 		case IPos_DatamodelPackage.SPACE__Z:
 			setZ((Float) newValue);
 			return;
+		case IPos_DatamodelPackage.SPACE__CENTRE_POINT:
+			setCentrePoint((Placing) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -226,6 +286,9 @@ public class SpaceImpl extends MinimalEObjectImpl.Container implements Space {
 		case IPos_DatamodelPackage.SPACE__Z:
 			setZ(Z_EDEFAULT);
 			return;
+		case IPos_DatamodelPackage.SPACE__CENTRE_POINT:
+			setCentrePoint((Placing) null);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -244,6 +307,8 @@ public class SpaceImpl extends MinimalEObjectImpl.Container implements Space {
 			return y != Y_EDEFAULT;
 		case IPos_DatamodelPackage.SPACE__Z:
 			return z != Z_EDEFAULT;
+		case IPos_DatamodelPackage.SPACE__CENTRE_POINT:
+			return centrePoint != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WGS84PointImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WGS84PointImpl.java
index d10e4dad8157018667aa973e146a0da384f646b0..e140f5c22d1277f0c52036062ae2300ce4e36291 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WGS84PointImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WGS84PointImpl.java
@@ -10,7 +10,6 @@ import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EClass;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
 /**
  * <!-- begin-user-doc -->
@@ -27,7 +26,7 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
  *
  * @generated
  */
-public class WGS84PointImpl extends MinimalEObjectImpl.Container implements WGS84Point {
+public class WGS84PointImpl extends PointImpl implements WGS84Point {
 	/**
 	 * The default value of the '{@link #getLongitude() <em>Longitude</em>}' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelImpl.java
index 8a77addf4003671cf4e02a16e1336038b4499880..94fa6e2a417fc5c56491b514e71c66e285787f66 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/WorldModelImpl.java
@@ -4,6 +4,8 @@ package ipos.project.DataModellntegration.iPos_Datamodel.impl;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.Agent;
 import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.POI;
+import ipos.project.DataModellntegration.iPos_Datamodel.ReferenceSystem;
 import ipos.project.DataModellntegration.iPos_Datamodel.WorldModel;
 import ipos.project.DataModellntegration.iPos_Datamodel.ZoneMap;
 
@@ -26,7 +28,9 @@ import org.eclipse.emf.ecore.util.EObjectResolvingEList;
  * </p>
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelImpl#getAgent <em>Agent</em>}</li>
- *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelImpl#getZonemap <em>Zonemap</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelImpl#getZoneMap <em>Zone Map</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelImpl#getPois <em>Pois</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.WorldModelImpl#getReferenceSystem <em>Reference System</em>}</li>
  * </ul>
  *
  * @generated
@@ -43,14 +47,34 @@ public class WorldModelImpl extends MinimalEObjectImpl.Container implements Worl
 	protected EList<Agent> agent;
 
 	/**
-	 * The cached value of the '{@link #getZonemap() <em>Zonemap</em>}' reference list.
+	 * The cached value of the '{@link #getZoneMap() <em>Zone Map</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getZonemap()
+	 * @see #getZoneMap()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<ZoneMap> zonemap;
+	protected EList<ZoneMap> zoneMap;
+
+	/**
+	 * The cached value of the '{@link #getPois() <em>Pois</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPois()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<POI> pois;
+
+	/**
+	 * The cached value of the '{@link #getReferenceSystem() <em>Reference System</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReferenceSystem()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ReferenceSystem> referenceSystem;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -88,12 +112,37 @@ public class WorldModelImpl extends MinimalEObjectImpl.Container implements Worl
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EList<ZoneMap> getZonemap() {
-		if (zonemap == null) {
-			zonemap = new EObjectResolvingEList<ZoneMap>(ZoneMap.class, this,
-					IPos_DatamodelPackage.WORLD_MODEL__ZONEMAP);
+	public EList<ZoneMap> getZoneMap() {
+		if (zoneMap == null) {
+			zoneMap = new EObjectResolvingEList<ZoneMap>(ZoneMap.class, this,
+					IPos_DatamodelPackage.WORLD_MODEL__ZONE_MAP);
+		}
+		return zoneMap;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<POI> getPois() {
+		if (pois == null) {
+			pois = new EObjectResolvingEList<POI>(POI.class, this, IPos_DatamodelPackage.WORLD_MODEL__POIS);
 		}
-		return zonemap;
+		return pois;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<ReferenceSystem> getReferenceSystem() {
+		if (referenceSystem == null) {
+			referenceSystem = new EObjectResolvingEList<ReferenceSystem>(ReferenceSystem.class, this,
+					IPos_DatamodelPackage.WORLD_MODEL__REFERENCE_SYSTEM);
+		}
+		return referenceSystem;
 	}
 
 	/**
@@ -106,8 +155,12 @@ public class WorldModelImpl extends MinimalEObjectImpl.Container implements Worl
 		switch (featureID) {
 		case IPos_DatamodelPackage.WORLD_MODEL__AGENT:
 			return getAgent();
-		case IPos_DatamodelPackage.WORLD_MODEL__ZONEMAP:
-			return getZonemap();
+		case IPos_DatamodelPackage.WORLD_MODEL__ZONE_MAP:
+			return getZoneMap();
+		case IPos_DatamodelPackage.WORLD_MODEL__POIS:
+			return getPois();
+		case IPos_DatamodelPackage.WORLD_MODEL__REFERENCE_SYSTEM:
+			return getReferenceSystem();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -125,9 +178,17 @@ public class WorldModelImpl extends MinimalEObjectImpl.Container implements Worl
 			getAgent().clear();
 			getAgent().addAll((Collection<? extends Agent>) newValue);
 			return;
-		case IPos_DatamodelPackage.WORLD_MODEL__ZONEMAP:
-			getZonemap().clear();
-			getZonemap().addAll((Collection<? extends ZoneMap>) newValue);
+		case IPos_DatamodelPackage.WORLD_MODEL__ZONE_MAP:
+			getZoneMap().clear();
+			getZoneMap().addAll((Collection<? extends ZoneMap>) newValue);
+			return;
+		case IPos_DatamodelPackage.WORLD_MODEL__POIS:
+			getPois().clear();
+			getPois().addAll((Collection<? extends POI>) newValue);
+			return;
+		case IPos_DatamodelPackage.WORLD_MODEL__REFERENCE_SYSTEM:
+			getReferenceSystem().clear();
+			getReferenceSystem().addAll((Collection<? extends ReferenceSystem>) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -144,8 +205,14 @@ public class WorldModelImpl extends MinimalEObjectImpl.Container implements Worl
 		case IPos_DatamodelPackage.WORLD_MODEL__AGENT:
 			getAgent().clear();
 			return;
-		case IPos_DatamodelPackage.WORLD_MODEL__ZONEMAP:
-			getZonemap().clear();
+		case IPos_DatamodelPackage.WORLD_MODEL__ZONE_MAP:
+			getZoneMap().clear();
+			return;
+		case IPos_DatamodelPackage.WORLD_MODEL__POIS:
+			getPois().clear();
+			return;
+		case IPos_DatamodelPackage.WORLD_MODEL__REFERENCE_SYSTEM:
+			getReferenceSystem().clear();
 			return;
 		}
 		super.eUnset(featureID);
@@ -161,8 +228,12 @@ public class WorldModelImpl extends MinimalEObjectImpl.Container implements Worl
 		switch (featureID) {
 		case IPos_DatamodelPackage.WORLD_MODEL__AGENT:
 			return agent != null && !agent.isEmpty();
-		case IPos_DatamodelPackage.WORLD_MODEL__ZONEMAP:
-			return zonemap != null && !zonemap.isEmpty();
+		case IPos_DatamodelPackage.WORLD_MODEL__ZONE_MAP:
+			return zoneMap != null && !zoneMap.isEmpty();
+		case IPos_DatamodelPackage.WORLD_MODEL__POIS:
+			return pois != null && !pois.isEmpty();
+		case IPos_DatamodelPackage.WORLD_MODEL__REFERENCE_SYSTEM:
+			return referenceSystem != null && !referenceSystem.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ZoneDescriptorImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ZoneDescriptorImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb9b988ccab577eeaf49221c0ffb1718cfc47e11
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ZoneDescriptorImpl.java
@@ -0,0 +1,221 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Zone Descriptor</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneDescriptorImpl#getZoneId <em>Zone Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneDescriptorImpl#getNotificationType <em>Notification Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ZoneDescriptorImpl extends MinimalEObjectImpl.Container implements ZoneDescriptor {
+	/**
+	 * The default value of the '{@link #getZoneId() <em>Zone Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZoneId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ZONE_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getZoneId() <em>Zone Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZoneId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String zoneId = ZONE_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNotificationType() <em>Notification Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNotificationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NOTIFICATION_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNotificationType() <em>Notification Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNotificationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String notificationType = NOTIFICATION_TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ZoneDescriptorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return IPos_DatamodelPackage.Literals.ZONE_DESCRIPTOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getZoneId() {
+		return zoneId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setZoneId(String newZoneId) {
+		String oldZoneId = zoneId;
+		zoneId = newZoneId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.ZONE_DESCRIPTOR__ZONE_ID,
+					oldZoneId, zoneId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNotificationType() {
+		return notificationType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNotificationType(String newNotificationType) {
+		String oldNotificationType = notificationType;
+		notificationType = newNotificationType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					IPos_DatamodelPackage.ZONE_DESCRIPTOR__NOTIFICATION_TYPE, oldNotificationType, notificationType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR__ZONE_ID:
+			return getZoneId();
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			return getNotificationType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR__ZONE_ID:
+			setZoneId((String) newValue);
+			return;
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			setNotificationType((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR__ZONE_ID:
+			setZoneId(ZONE_ID_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			setNotificationType(NOTIFICATION_TYPE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR__ZONE_ID:
+			return ZONE_ID_EDEFAULT == null ? zoneId != null : !ZONE_ID_EDEFAULT.equals(zoneId);
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			return NOTIFICATION_TYPE_EDEFAULT == null ? notificationType != null
+					: !NOTIFICATION_TYPE_EDEFAULT.equals(notificationType);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (zoneId: ");
+		result.append(zoneId);
+		result.append(", notificationType: ");
+		result.append(notificationType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ZoneDescriptorImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ZoneImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ZoneImpl.java
index f756273e2bc48c6226d29364d807313d45a5f44d..72987b7c19692ba9b6464b0507f90b5e5e25daa5 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ZoneImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/ZoneImpl.java
@@ -8,6 +8,7 @@ import ipos.project.DataModellntegration.iPos_Datamodel.Zone;
 
 import java.util.Collection;
 
+import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
 import org.eclipse.emf.common.util.EList;
@@ -15,6 +16,9 @@ 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 org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
@@ -27,11 +31,13 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneImpl#getSpace <em>Space</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneImpl#getName <em>Name</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.impl.ZoneImpl#getId <em>Id</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class ZoneImpl extends ReferenceSystemImpl implements Zone {
+public class ZoneImpl extends MinimalEObjectImpl.Container implements Zone {
 	/**
 	 * The cached value of the '{@link #getSpace() <em>Space</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
@@ -42,6 +48,46 @@ public class ZoneImpl extends ReferenceSystemImpl implements Zone {
 	 */
 	protected EList<Space> space;
 
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -73,6 +119,48 @@ public class ZoneImpl extends ReferenceSystemImpl implements Zone {
 		return space;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.ZONE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, IPos_DatamodelPackage.ZONE__ID, oldId, id));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -97,6 +185,10 @@ public class ZoneImpl extends ReferenceSystemImpl implements Zone {
 		switch (featureID) {
 		case IPos_DatamodelPackage.ZONE__SPACE:
 			return getSpace();
+		case IPos_DatamodelPackage.ZONE__NAME:
+			return getName();
+		case IPos_DatamodelPackage.ZONE__ID:
+			return getId();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -114,6 +206,12 @@ public class ZoneImpl extends ReferenceSystemImpl implements Zone {
 			getSpace().clear();
 			getSpace().addAll((Collection<? extends Space>) newValue);
 			return;
+		case IPos_DatamodelPackage.ZONE__NAME:
+			setName((String) newValue);
+			return;
+		case IPos_DatamodelPackage.ZONE__ID:
+			setId((String) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -129,6 +227,12 @@ public class ZoneImpl extends ReferenceSystemImpl implements Zone {
 		case IPos_DatamodelPackage.ZONE__SPACE:
 			getSpace().clear();
 			return;
+		case IPos_DatamodelPackage.ZONE__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case IPos_DatamodelPackage.ZONE__ID:
+			setId(ID_EDEFAULT);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -143,8 +247,31 @@ public class ZoneImpl extends ReferenceSystemImpl implements Zone {
 		switch (featureID) {
 		case IPos_DatamodelPackage.ZONE__SPACE:
 			return space != null && !space.isEmpty();
+		case IPos_DatamodelPackage.ZONE__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case IPos_DatamodelPackage.ZONE__ID:
+			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(", id: ");
+		result.append(id);
+		result.append(')');
+		return result.toString();
+	}
+
 } //ZoneImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelAdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelAdapterFactory.java
index 5d576dd7e67637b8956d294ce25a8cad1cce6152..a32b36ef5d6007518efdae7a6f05357d43699201 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelAdapterFactory.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelAdapterFactory.java
@@ -81,11 +81,6 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 			return createLocalizableObjectAdapter();
 		}
 
-		@Override
-		public Adapter casePositionSensor(PositionSensor object) {
-			return createPositionSensorAdapter();
-		}
-
 		@Override
 		public Adapter casePlacing(Placing object) {
 			return createPlacingAdapter();
@@ -101,16 +96,6 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 			return createOrientationAdapter();
 		}
 
-		@Override
-		public Adapter caseAbsolutePosition(AbsolutePosition object) {
-			return createAbsolutePositionAdapter();
-		}
-
-		@Override
-		public Adapter caseRelativePosition(RelativePosition object) {
-			return createRelativePositionAdapter();
-		}
-
 		@Override
 		public Adapter caseWGS84Point(WGS84Point object) {
 			return createWGS84PointAdapter();
@@ -156,11 +141,6 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 			return createMapTypeAdapter();
 		}
 
-		@Override
-		public Adapter caseNetworkInterface(NetworkInterface object) {
-			return createNetworkInterfaceAdapter();
-		}
-
 		@Override
 		public Adapter caseQuaternion(Quaternion object) {
 			return createQuaternionAdapter();
@@ -177,8 +157,8 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 		}
 
 		@Override
-		public Adapter caseRawdata(Rawdata object) {
-			return createRawdataAdapter();
+		public Adapter caseRawdataEvent(RawdataEvent object) {
+			return createRawdataEventAdapter();
 		}
 
 		@Override
@@ -201,11 +181,6 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 			return createIMUAdapter();
 		}
 
-		@Override
-		public Adapter caseAngularRate(AngularRate object) {
-			return createAngularRateAdapter();
-		}
-
 		@Override
 		public Adapter caseAcceleration(Acceleration object) {
 			return createAccelerationAdapter();
@@ -221,51 +196,11 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 			return createPositionEventAdapter();
 		}
 
-		@Override
-		public Adapter caseRawdataEvent(RawdataEvent object) {
-			return createRawdataEventAdapter();
-		}
-
-		@Override
-		public Adapter caseTrackingRequest(TrackingRequest object) {
-			return createTrackingRequestAdapter();
-		}
-
-		@Override
-		public Adapter caseMonitoringRequest(MonitoringRequest object) {
-			return createMonitoringRequestAdapter();
-		}
-
-		@Override
-		public Adapter caseWorldModelUpdateRequest(WorldModelUpdateRequest object) {
-			return createWorldModelUpdateRequestAdapter();
-		}
-
-		@Override
-		public Adapter caseDataStorageRequest(DataStorageRequest object) {
-			return createDataStorageRequestAdapter();
-		}
-
 		@Override
 		public Adapter caseEventFilterConfiguration(EventFilterConfiguration object) {
 			return createEventFilterConfigurationAdapter();
 		}
 
-		@Override
-		public Adapter caseWorldModelQueryRequest(WorldModelQueryRequest object) {
-			return createWorldModelQueryRequestAdapter();
-		}
-
-		@Override
-		public Adapter caseDataStorageQueryRequest(DataStorageQueryRequest object) {
-			return createDataStorageQueryRequestAdapter();
-		}
-
-		@Override
-		public Adapter caseAgentRegistrationRequest(AgentRegistrationRequest object) {
-			return createAgentRegistrationRequestAdapter();
-		}
-
 		@Override
 		public Adapter caseMonitoringTask(MonitoringTask object) {
 			return createMonitoringTaskAdapter();
@@ -301,19 +236,14 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 			return createUWBAdapter();
 		}
 
-		@Override
-		public Adapter caseSensorConfigurationRequest(SensorConfigurationRequest object) {
-			return createSensorConfigurationRequestAdapter();
-		}
-
 		@Override
 		public Adapter caseOtherBeacon(OtherBeacon object) {
 			return createOtherBeaconAdapter();
 		}
 
 		@Override
-		public Adapter caseReferencePosition(ReferencePosition object) {
-			return createReferencePositionAdapter();
+		public Adapter casePOI(POI object) {
+			return createPOIAdapter();
 		}
 
 		@Override
@@ -321,6 +251,21 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 			return createEventFilterConditionAdapter();
 		}
 
+		@Override
+		public Adapter caseZoneDescriptor(ZoneDescriptor object) {
+			return createZoneDescriptorAdapter();
+		}
+
+		@Override
+		public Adapter caseDataStorageQueryResponse(DataStorageQueryResponse object) {
+			return createDataStorageQueryResponseAdapter();
+		}
+
+		@Override
+		public Adapter caseMessageReceivedEvent(MessageReceivedEvent object) {
+			return createMessageReceivedEventAdapter();
+		}
+
 		@Override
 		public Adapter defaultCase(EObject object) {
 			return createEObjectAdapter();
@@ -382,20 +327,6 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor <em>Position Sensor</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 ipos.project.DataModellntegration.iPos_Datamodel.PositionSensor
-	 * @generated
-	 */
-	public Adapter createPositionSensorAdapter() {
-		return null;
-	}
-
 	/**
 	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Placing <em>Placing</em>}'.
 	 * <!-- begin-user-doc -->
@@ -438,34 +369,6 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition <em>Absolute Position</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 ipos.project.DataModellntegration.iPos_Datamodel.AbsolutePosition
-	 * @generated
-	 */
-	public Adapter createAbsolutePositionAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition <em>Relative Position</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 ipos.project.DataModellntegration.iPos_Datamodel.RelativePosition
-	 * @generated
-	 */
-	public Adapter createRelativePositionAdapter() {
-		return null;
-	}
-
 	/**
 	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.WGS84Point <em>WGS84 Point</em>}'.
 	 * <!-- begin-user-doc -->
@@ -592,20 +495,6 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.NetworkInterface <em>Network Interface</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 ipos.project.DataModellntegration.iPos_Datamodel.NetworkInterface
-	 * @generated
-	 */
-	public Adapter createNetworkInterfaceAdapter() {
-		return null;
-	}
-
 	/**
 	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Quaternion <em>Quaternion</em>}'.
 	 * <!-- begin-user-doc -->
@@ -649,16 +538,16 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Rawdata <em>Rawdata</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent <em>Rawdata Event</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 ipos.project.DataModellntegration.iPos_Datamodel.Rawdata
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent
 	 * @generated
 	 */
-	public Adapter createRawdataAdapter() {
+	public Adapter createRawdataEventAdapter() {
 		return null;
 	}
 
@@ -718,20 +607,6 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.AngularRate <em>Angular Rate</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 ipos.project.DataModellntegration.iPos_Datamodel.AngularRate
-	 * @generated
-	 */
-	public Adapter createAngularRateAdapter() {
-		return null;
-	}
-
 	/**
 	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Acceleration <em>Acceleration</em>}'.
 	 * <!-- begin-user-doc -->
@@ -774,76 +649,6 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent <em>Rawdata Event</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 ipos.project.DataModellntegration.iPos_Datamodel.RawdataEvent
-	 * @generated
-	 */
-	public Adapter createRawdataEventAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.TrackingRequest <em>Tracking Request</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 ipos.project.DataModellntegration.iPos_Datamodel.TrackingRequest
-	 * @generated
-	 */
-	public Adapter createTrackingRequestAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MonitoringRequest <em>Monitoring Request</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 ipos.project.DataModellntegration.iPos_Datamodel.MonitoringRequest
-	 * @generated
-	 */
-	public Adapter createMonitoringRequestAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModelUpdateRequest <em>World Model Update Request</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 ipos.project.DataModellntegration.iPos_Datamodel.WorldModelUpdateRequest
-	 * @generated
-	 */
-	public Adapter createWorldModelUpdateRequestAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageRequest <em>Data Storage Request</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 ipos.project.DataModellntegration.iPos_Datamodel.DataStorageRequest
-	 * @generated
-	 */
-	public Adapter createDataStorageRequestAdapter() {
-		return null;
-	}
-
 	/**
 	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterConfiguration <em>Event Filter Configuration</em>}'.
 	 * <!-- begin-user-doc -->
@@ -859,198 +664,184 @@ public class IPos_DatamodelAdapterFactory extends AdapterFactoryImpl {
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModelQueryRequest <em>World Model Query Request</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 ipos.project.DataModellntegration.iPos_Datamodel.WorldModelQueryRequest
-	 * @generated
-	 */
-	public Adapter createWorldModelQueryRequestAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryRequest <em>Data Storage Query Request</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MonitoringTask <em>Monitoring Task</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 ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryRequest
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MonitoringTask
 	 * @generated
 	 */
-	public Adapter createDataStorageQueryRequestAdapter() {
+	public Adapter createMonitoringTaskAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.AgentRegistrationRequest <em>Agent Registration Request</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.TrackingTask <em>Tracking Task</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 ipos.project.DataModellntegration.iPos_Datamodel.AgentRegistrationRequest
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.TrackingTask
 	 * @generated
 	 */
-	public Adapter createAgentRegistrationRequestAdapter() {
+	public Adapter createTrackingTaskAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MonitoringTask <em>Monitoring Task</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel <em>World Model</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 ipos.project.DataModellntegration.iPos_Datamodel.MonitoringTask
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.WorldModel
 	 * @generated
 	 */
-	public Adapter createMonitoringTaskAdapter() {
+	public Adapter createWorldModelAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.TrackingTask <em>Tracking Task</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Barcode <em>Barcode</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 ipos.project.DataModellntegration.iPos_Datamodel.TrackingTask
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Barcode
 	 * @generated
 	 */
-	public Adapter createTrackingTaskAdapter() {
+	public Adapter createBarcodeAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.WorldModel <em>World Model</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OtherProx <em>Other Prox</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 ipos.project.DataModellntegration.iPos_Datamodel.WorldModel
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OtherProx
 	 * @generated
 	 */
-	public Adapter createWorldModelAdapter() {
+	public Adapter createOtherProxAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Barcode <em>Barcode</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Bluetooth <em>Bluetooth</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 ipos.project.DataModellntegration.iPos_Datamodel.Barcode
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.Bluetooth
 	 * @generated
 	 */
-	public Adapter createBarcodeAdapter() {
+	public Adapter createBluetoothAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OtherProx <em>Other Prox</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.UWB <em>UWB</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 ipos.project.DataModellntegration.iPos_Datamodel.OtherProx
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.UWB
 	 * @generated
 	 */
-	public Adapter createOtherProxAdapter() {
+	public Adapter createUWBAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Bluetooth <em>Bluetooth</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OtherBeacon <em>Other Beacon</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 ipos.project.DataModellntegration.iPos_Datamodel.Bluetooth
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OtherBeacon
 	 * @generated
 	 */
-	public Adapter createBluetoothAdapter() {
+	public Adapter createOtherBeaconAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.UWB <em>UWB</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.POI <em>POI</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 ipos.project.DataModellntegration.iPos_Datamodel.UWB
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.POI
 	 * @generated
 	 */
-	public Adapter createUWBAdapter() {
+	public Adapter createPOIAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.SensorConfigurationRequest <em>Sensor Configuration Request</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition <em>Event Filter Condition</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 ipos.project.DataModellntegration.iPos_Datamodel.SensorConfigurationRequest
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition
 	 * @generated
 	 */
-	public Adapter createSensorConfigurationRequestAdapter() {
+	public Adapter createEventFilterConditionAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OtherBeacon <em>Other Beacon</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor <em>Zone Descriptor</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 ipos.project.DataModellntegration.iPos_Datamodel.OtherBeacon
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor
 	 * @generated
 	 */
-	public Adapter createOtherBeaconAdapter() {
+	public Adapter createZoneDescriptorAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition <em>Reference Position</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse <em>Data Storage Query Response</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 ipos.project.DataModellntegration.iPos_Datamodel.ReferencePosition
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.DataStorageQueryResponse
 	 * @generated
 	 */
-	public Adapter createReferencePositionAdapter() {
+	public Adapter createDataStorageQueryResponseAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition <em>Event Filter Condition</em>}'.
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent <em>Message Received Event</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 ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent
 	 * @generated
 	 */
-	public Adapter createEventFilterConditionAdapter() {
+	public Adapter createMessageReceivedEventAdapter() {
 		return null;
 	}
 
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelSwitch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelSwitch.java
index 4652b193a2ba3bafef7a408dc484ab71fe536f0d..9a47158b6f8c4d29134c4ba62659328b80077c02 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelSwitch.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/util/IPos_DatamodelSwitch.java
@@ -91,15 +91,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 				result = defaultCase(theEObject);
 			return result;
 		}
-		case IPos_DatamodelPackage.POSITION_SENSOR: {
-			PositionSensor positionSensor = (PositionSensor) theEObject;
-			T result = casePositionSensor(positionSensor);
-			if (result == null)
-				result = caseEntity(positionSensor);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
 		case IPos_DatamodelPackage.PLACING: {
 			Placing placing = (Placing) theEObject;
 			T result = casePlacing(placing);
@@ -121,27 +112,11 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 				result = defaultCase(theEObject);
 			return result;
 		}
-		case IPos_DatamodelPackage.ABSOLUTE_POSITION: {
-			AbsolutePosition absolutePosition = (AbsolutePosition) theEObject;
-			T result = caseAbsolutePosition(absolutePosition);
-			if (result == null)
-				result = casePosition(absolutePosition);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case IPos_DatamodelPackage.RELATIVE_POSITION: {
-			RelativePosition relativePosition = (RelativePosition) theEObject;
-			T result = caseRelativePosition(relativePosition);
-			if (result == null)
-				result = casePosition(relativePosition);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
 		case IPos_DatamodelPackage.WGS84_POINT: {
 			WGS84Point wgs84Point = (WGS84Point) theEObject;
 			T result = caseWGS84Point(wgs84Point);
+			if (result == null)
+				result = casePoint(wgs84Point);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -181,8 +156,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 		case IPos_DatamodelPackage.ZONE: {
 			Zone zone = (Zone) theEObject;
 			T result = caseZone(zone);
-			if (result == null)
-				result = caseReferenceSystem(zone);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -210,13 +183,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 				result = defaultCase(theEObject);
 			return result;
 		}
-		case IPos_DatamodelPackage.NETWORK_INTERFACE: {
-			NetworkInterface networkInterface = (NetworkInterface) theEObject;
-			T result = caseNetworkInterface(networkInterface);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
 		case IPos_DatamodelPackage.QUATERNION: {
 			Quaternion quaternion = (Quaternion) theEObject;
 			T result = caseQuaternion(quaternion);
@@ -242,9 +208,9 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 				result = defaultCase(theEObject);
 			return result;
 		}
-		case IPos_DatamodelPackage.RAWDATA: {
-			Rawdata rawdata = (Rawdata) theEObject;
-			T result = caseRawdata(rawdata);
+		case IPos_DatamodelPackage.RAWDATA_EVENT: {
+			RawdataEvent rawdataEvent = (RawdataEvent) theEObject;
+			T result = caseRawdataEvent(rawdataEvent);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -253,7 +219,7 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			Proximity proximity = (Proximity) theEObject;
 			T result = caseProximity(proximity);
 			if (result == null)
-				result = caseRawdata(proximity);
+				result = caseRawdataEvent(proximity);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -264,7 +230,7 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			if (result == null)
 				result = caseProximity(rfid);
 			if (result == null)
-				result = caseRawdata(rfid);
+				result = caseRawdataEvent(rfid);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -275,7 +241,7 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			if (result == null)
 				result = caseProximity(nfc);
 			if (result == null)
-				result = caseRawdata(nfc);
+				result = caseRawdataEvent(nfc);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -284,14 +250,7 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			IMU imu = (IMU) theEObject;
 			T result = caseIMU(imu);
 			if (result == null)
-				result = caseRawdata(imu);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case IPos_DatamodelPackage.ANGULAR_RATE: {
-			AngularRate angularRate = (AngularRate) theEObject;
-			T result = caseAngularRate(angularRate);
+				result = caseRawdataEvent(imu);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -307,7 +266,7 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			Beacon beacon = (Beacon) theEObject;
 			T result = caseBeacon(beacon);
 			if (result == null)
-				result = caseRawdata(beacon);
+				result = caseRawdataEvent(beacon);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -319,41 +278,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 				result = defaultCase(theEObject);
 			return result;
 		}
-		case IPos_DatamodelPackage.RAWDATA_EVENT: {
-			RawdataEvent rawdataEvent = (RawdataEvent) theEObject;
-			T result = caseRawdataEvent(rawdataEvent);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case IPos_DatamodelPackage.TRACKING_REQUEST: {
-			TrackingRequest trackingRequest = (TrackingRequest) theEObject;
-			T result = caseTrackingRequest(trackingRequest);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case IPos_DatamodelPackage.MONITORING_REQUEST: {
-			MonitoringRequest monitoringRequest = (MonitoringRequest) theEObject;
-			T result = caseMonitoringRequest(monitoringRequest);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case IPos_DatamodelPackage.WORLD_MODEL_UPDATE_REQUEST: {
-			WorldModelUpdateRequest worldModelUpdateRequest = (WorldModelUpdateRequest) theEObject;
-			T result = caseWorldModelUpdateRequest(worldModelUpdateRequest);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case IPos_DatamodelPackage.DATA_STORAGE_REQUEST: {
-			DataStorageRequest dataStorageRequest = (DataStorageRequest) theEObject;
-			T result = caseDataStorageRequest(dataStorageRequest);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
 		case IPos_DatamodelPackage.EVENT_FILTER_CONFIGURATION: {
 			EventFilterConfiguration eventFilterConfiguration = (EventFilterConfiguration) theEObject;
 			T result = caseEventFilterConfiguration(eventFilterConfiguration);
@@ -361,27 +285,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 				result = defaultCase(theEObject);
 			return result;
 		}
-		case IPos_DatamodelPackage.WORLD_MODEL_QUERY_REQUEST: {
-			WorldModelQueryRequest worldModelQueryRequest = (WorldModelQueryRequest) theEObject;
-			T result = caseWorldModelQueryRequest(worldModelQueryRequest);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_REQUEST: {
-			DataStorageQueryRequest dataStorageQueryRequest = (DataStorageQueryRequest) theEObject;
-			T result = caseDataStorageQueryRequest(dataStorageQueryRequest);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case IPos_DatamodelPackage.AGENT_REGISTRATION_REQUEST: {
-			AgentRegistrationRequest agentRegistrationRequest = (AgentRegistrationRequest) theEObject;
-			T result = caseAgentRegistrationRequest(agentRegistrationRequest);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
 		case IPos_DatamodelPackage.MONITORING_TASK: {
 			MonitoringTask monitoringTask = (MonitoringTask) theEObject;
 			T result = caseMonitoringTask(monitoringTask);
@@ -409,7 +312,7 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			if (result == null)
 				result = caseProximity(barcode);
 			if (result == null)
-				result = caseRawdata(barcode);
+				result = caseRawdataEvent(barcode);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -420,7 +323,7 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			if (result == null)
 				result = caseProximity(otherProx);
 			if (result == null)
-				result = caseRawdata(otherProx);
+				result = caseRawdataEvent(otherProx);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -431,7 +334,7 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			if (result == null)
 				result = caseBeacon(bluetooth);
 			if (result == null)
-				result = caseRawdata(bluetooth);
+				result = caseRawdataEvent(bluetooth);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -442,14 +345,7 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			if (result == null)
 				result = caseBeacon(uwb);
 			if (result == null)
-				result = caseRawdata(uwb);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case IPos_DatamodelPackage.SENSOR_CONFIGURATION_REQUEST: {
-			SensorConfigurationRequest sensorConfigurationRequest = (SensorConfigurationRequest) theEObject;
-			T result = caseSensorConfigurationRequest(sensorConfigurationRequest);
+				result = caseRawdataEvent(uwb);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -460,14 +356,14 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 			if (result == null)
 				result = caseBeacon(otherBeacon);
 			if (result == null)
-				result = caseRawdata(otherBeacon);
+				result = caseRawdataEvent(otherBeacon);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
 		}
-		case IPos_DatamodelPackage.REFERENCE_POSITION: {
-			ReferencePosition referencePosition = (ReferencePosition) theEObject;
-			T result = caseReferencePosition(referencePosition);
+		case IPos_DatamodelPackage.POI: {
+			POI poi = (POI) theEObject;
+			T result = casePOI(poi);
 			if (result == null)
 				result = defaultCase(theEObject);
 			return result;
@@ -479,6 +375,27 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 				result = defaultCase(theEObject);
 			return result;
 		}
+		case IPos_DatamodelPackage.ZONE_DESCRIPTOR: {
+			ZoneDescriptor zoneDescriptor = (ZoneDescriptor) theEObject;
+			T result = caseZoneDescriptor(zoneDescriptor);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPos_DatamodelPackage.DATA_STORAGE_QUERY_RESPONSE: {
+			DataStorageQueryResponse dataStorageQueryResponse = (DataStorageQueryResponse) theEObject;
+			T result = caseDataStorageQueryResponse(dataStorageQueryResponse);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case IPos_DatamodelPackage.MESSAGE_RECEIVED_EVENT: {
+			MessageReceivedEvent messageReceivedEvent = (MessageReceivedEvent) theEObject;
+			T result = caseMessageReceivedEvent(messageReceivedEvent);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
 		default:
 			return defaultCase(theEObject);
 		}
@@ -529,21 +446,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 		return null;
 	}
 
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Position Sensor</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>Position Sensor</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T casePositionSensor(PositionSensor object) {
-		return null;
-	}
-
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Placing</em>'.
 	 * <!-- begin-user-doc -->
@@ -589,36 +491,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 		return null;
 	}
 
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Absolute Position</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>Absolute Position</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseAbsolutePosition(AbsolutePosition object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Relative Position</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>Relative Position</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseRelativePosition(RelativePosition object) {
-		return null;
-	}
-
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>WGS84 Point</em>'.
 	 * <!-- begin-user-doc -->
@@ -754,21 +626,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 		return null;
 	}
 
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Network Interface</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>Network Interface</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNetworkInterface(NetworkInterface object) {
-		return null;
-	}
-
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Quaternion</em>'.
 	 * <!-- begin-user-doc -->
@@ -815,17 +672,17 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Rawdata</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Rawdata Event</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>Rawdata</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Rawdata Event</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseRawdata(Rawdata object) {
+	public T caseRawdataEvent(RawdataEvent object) {
 		return null;
 	}
 
@@ -889,21 +746,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 		return null;
 	}
 
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Angular Rate</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>Angular Rate</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseAngularRate(AngularRate object) {
-		return null;
-	}
-
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Acceleration</em>'.
 	 * <!-- begin-user-doc -->
@@ -949,81 +791,6 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 		return null;
 	}
 
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Rawdata Event</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>Rawdata Event</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseRawdataEvent(RawdataEvent object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Tracking Request</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>Tracking Request</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTrackingRequest(TrackingRequest object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Monitoring Request</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>Monitoring Request</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseMonitoringRequest(MonitoringRequest object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>World Model Update Request</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>World Model Update Request</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseWorldModelUpdateRequest(WorldModelUpdateRequest object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Data Storage Request</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>Data Storage Request</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseDataStorageRequest(DataStorageRequest object) {
-		return null;
-	}
-
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Event Filter Configuration</em>'.
 	 * <!-- begin-user-doc -->
@@ -1040,212 +807,197 @@ public class IPos_DatamodelSwitch<T> extends Switch<T> {
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>World Model Query Request</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>World Model Query Request</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseWorldModelQueryRequest(WorldModelQueryRequest object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Data Storage Query Request</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Monitoring Task</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>Data Storage Query Request</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Monitoring Task</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseDataStorageQueryRequest(DataStorageQueryRequest object) {
+	public T caseMonitoringTask(MonitoringTask object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Agent Registration Request</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Tracking Task</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>Agent Registration Request</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Tracking Task</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseAgentRegistrationRequest(AgentRegistrationRequest object) {
+	public T caseTrackingTask(TrackingTask object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Monitoring Task</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>World Model</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>Monitoring Task</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>World Model</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseMonitoringTask(MonitoringTask object) {
+	public T caseWorldModel(WorldModel object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Tracking Task</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Barcode</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>Tracking Task</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Barcode</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseTrackingTask(TrackingTask object) {
+	public T caseBarcode(Barcode object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>World Model</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Other Prox</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>World Model</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Other Prox</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseWorldModel(WorldModel object) {
+	public T caseOtherProx(OtherProx object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Barcode</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Bluetooth</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>Barcode</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Bluetooth</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseBarcode(Barcode object) {
+	public T caseBluetooth(Bluetooth object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Other Prox</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>UWB</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>Other Prox</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>UWB</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseOtherProx(OtherProx object) {
+	public T caseUWB(UWB object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Bluetooth</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Other Beacon</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>Bluetooth</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Other Beacon</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseBluetooth(Bluetooth object) {
+	public T caseOtherBeacon(OtherBeacon object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>UWB</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>POI</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>UWB</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>POI</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseUWB(UWB object) {
+	public T casePOI(POI object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Sensor Configuration Request</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Event Filter Condition</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>Sensor Configuration Request</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Event Filter Condition</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseSensorConfigurationRequest(SensorConfigurationRequest object) {
+	public T caseEventFilterCondition(EventFilterCondition object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Other Beacon</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Zone Descriptor</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>Other Beacon</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Zone Descriptor</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseOtherBeacon(OtherBeacon object) {
+	public T caseZoneDescriptor(ZoneDescriptor object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Reference Position</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Data Storage Query Response</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>Reference Position</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Data Storage Query Response</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseReferencePosition(ReferencePosition object) {
+	public T caseDataStorageQueryResponse(DataStorageQueryResponse object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Event Filter Condition</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Message Received Event</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>Event Filter Condition</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Message Received Event</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseEventFilterCondition(EventFilterCondition object) {
+	public T caseMessageReceivedEvent(MessageReceivedEvent object) {
 		return null;
 	}
 
diff --git a/src/main/java/ipos/project/DataModellntegration/service/ExternalPubService.java b/src/main/java/ipos/project/DataModellntegration/service/ExternalPubService.java
deleted file mode 100644
index dd88adcb324c74935d6a80a003717ee8ea7355de..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/service/ExternalPubService.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package ipos.project.DataModellntegration.service;
-
-public interface ExternalPubService {
-    void publish(final String topic, final String msg , int qos, boolean retained);
-}
diff --git a/src/main/java/ipos/project/DataModellntegration/service/impl/ExternalPubServiceImpl.java b/src/main/java/ipos/project/DataModellntegration/service/impl/ExternalPubServiceImpl.java
deleted file mode 100644
index 52858352cf218b32556f5bdc90a933e15bcc5016..0000000000000000000000000000000000000000
--- a/src/main/java/ipos/project/DataModellntegration/service/impl/ExternalPubServiceImpl.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package ipos.project.DataModellntegration.service.impl;
-
-import ipos.project.DataModellntegration.service.ExternalPubService;
-import org.eclipse.paho.client.mqttv3.MqttAsyncClient;
-import org.eclipse.paho.client.mqttv3.MqttException;
-import org.eclipse.paho.client.mqttv3.MqttMessage;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class ExternalPubServiceImpl implements ExternalPubService {
-
-    private final MqttAsyncClient mqttClient;
-
-    @Autowired
-    public ExternalPubServiceImpl(MqttAsyncClient mqttClient) {
-        this.mqttClient = mqttClient;
-    }
-
-    public void publish(final String topic, final String msg , int qos, boolean retained) {
-        MqttMessage mqttMessage = new MqttMessage();
-        mqttMessage.setPayload(msg.getBytes());
-        mqttMessage.setQos(qos);
-        mqttMessage.setRetained(retained);
-
-        try {
-            mqttClient.publish(topic, mqttMessage);
-        } catch (MqttException e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/src/main/java/ipos/project/Functionality/DataServices.java b/src/main/java/ipos/project/Functionality/DataServices.java
new file mode 100644
index 0000000000000000000000000000000000000000..955387ee99957f8a2f79a38dd1ca212241d32310
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/DataServices.java
@@ -0,0 +1,257 @@
+package ipos.project.Functionality;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.entity.IWorldModelAccess;
+import ipos.project.entity.LocalObjectWorldModel;
+import org.apache.logging.log4j.LogManager;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+public class DataServices {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+
+    private static IWorldModelAccess wma;
+
+    private static Map<String, List<PositionEvent>> trackingStorage = new HashMap<>();
+
+    public static void clearWorldModel(){
+        wma = new LocalObjectWorldModel();
+    }
+
+    public static ReferenceSystem getReferenceSystemByIdOrNull(String refSystemId) {
+        for (ReferenceSystem refSystem : wma.getAllRefSystems()){
+            if(refSystem.getId().equals(refSystemId)){
+                return refSystem;
+            }
+        }
+        return null;
+    }
+
+    public static LocalizableObject getLObjectByIdOrNull(String lObjectId) {
+        if(wma == null){
+            LOG.info("wma is null. lObjectId: " + lObjectId);
+            return null;
+        }
+        for (Agent agent : wma.getAllAgents()){
+            for (LocalizableObject lObject : agent.getLObject()){
+                if (lObject.getId().equals(lObjectId)){
+                    return lObject;
+                }
+            }
+        }
+        return null;
+    }
+
+    public static Zone getZoneByIdOrNull(String zoneId){
+        for (var zone : wma.getAllZones()){
+            if(zone.getId().equals(zoneId)){
+                return zone;
+            }
+        }
+        return null;
+    }
+
+    public static Agent getAgentForLocalizableObject(String lObjectId) throws IllegalArgumentException {
+        LocalizableObject lObject = DataServices.getLObjectByIdOrNull(lObjectId);
+        if (lObject == null || lObject.getAgent() == null) throw new IllegalArgumentException("localizable object unknown or has no agent associated");
+        return lObject.getAgent();
+    }
+
+    public static void addZone(Zone zone_input) {
+        for (Zone zone_loaded : wma.getAllZones()){
+            if (zone_loaded.getId().equals(zone_input.getId())){
+                LOG.warn("Zone " + zone_input.getId() + " could not be added to world model, as it already contains" +
+                        "a zone with the same id");
+                return;
+            }
+        }
+        wma.addZone(zone_input);
+    }
+
+    public static void persist(PositionEvent positionEvent, String trackingTaskId){
+        List<PositionEvent> trackedPositions = trackingStorage.get(trackingTaskId);
+        if(trackedPositions == null){
+            throw new IllegalArgumentException("unknown trackingTaskId");
+        }
+        trackedPositions.add(positionEvent);
+    }
+
+    public static List<PositionEvent> query(String trackingTaskId){
+        List<PositionEvent> trackedPositions = trackingStorage.get(trackingTaskId);
+        if(trackedPositions == null){
+            throw new IllegalArgumentException("unknown trackingTaskId");
+        }
+        if (trackedPositions.equals(new LinkedList<PositionEvent>())){
+            LOG.warn("No PositionEvents have been tracked for trackingTaskId " + trackingTaskId);
+        }
+        return trackedPositions;
+    }
+
+    public static void initTrackingTask(String trackingTaskId){
+        if (trackingStorage.get(trackingTaskId)!= null){
+            LOG.warn("Cleaning tracking task " + trackingTaskId);
+        }
+        trackingStorage.put(trackingTaskId, new LinkedList<PositionEvent>());
+    }
+
+    public static void addAgent(Agent agent_input) {
+        for (Agent agent_loaded : wma.getAllAgents()){
+            if (agent_loaded.getId().equals(agent_input.getId())){
+                mergeInputAgentIntoLoadedAgent(agent_loaded, agent_input);
+                return;
+                // TODO: careful: What about those LObjects that point on the currently existing agent-object?
+                // wma.removeAgent(agent_loaded.getId());
+                // wma.addAgent(agent_merged);
+            }
+        }
+        wma.addAgent(agent_input);
+    }
+
+    /**
+     * Keeps those LocalizableObjects that are currently connected to the loaded agent
+     * and adds those LocalizableObjects that are additionally connected to the input-agent.
+     * @param agent_loaded
+     * @param agent_input
+     * @return
+     */
+    private static Agent mergeInputAgentIntoLoadedAgent(Agent agent_loaded, Agent agent_input) {
+        List<LocalizableObject> lObjects_loaded = agent_loaded.getLObject();
+        List<LocalizableObject> lObjects_input = agent_input.getLObject();
+        for (LocalizableObject lObject_input : lObjects_input){
+            if (!containsLObjectId(lObjects_loaded, lObject_input.getId())){
+                lObjects_loaded.add(lObject_input);
+                LOG.info("Added lObject with id " + lObject_input.getId() + " to agent " + agent_loaded.getId());
+            }
+        }
+        return agent_loaded;
+    }
+
+    private static boolean containsLObjectId(List<LocalizableObject> lObjects, String id) {
+        for (LocalizableObject lObject : lObjects){
+            if(lObject.getId().equals(id)){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public static void addRefSystem(ReferenceSystem refSystem_input) {
+        for (ReferenceSystem refSystem_loaded : wma.getAllRefSystems()){
+            if (refSystem_loaded.getId().equals(refSystem_input.getId())){
+                LOG.warn("Reference system " + refSystem_input.getId() + " could not be added to world model, as it already contains" +
+                        "a reference system with the same id");
+                return;
+            }
+        }
+        wma.addRefSystem(refSystem_input);
+    }
+
+    public static void addPoi(POI poi_input) {
+        for (POI poi_loaded : wma.getAllPois()){
+            if (poi_loaded.getId().equals(poi_input.getId())){
+                LOG.warn("POI " + poi_input.getId() + " could not be added to world model, as it already contains" +
+                        "a poi with the same id");
+                return;
+            }
+        }
+        wma.addPoi(poi_input);
+    }
+
+    public static POI createPOI(Placing placing, String description, Map<String, String> data){
+        POI poi = modelFactory.createPOI();
+        poi.setPlacing(placing);
+        poi.setDescription(description);
+        poi.setData(data);
+        return poi;
+    }
+
+    public static Agent createAgent(String id, String type){
+        Agent agent = modelFactory.createAgent();
+        agent.setId(id);
+        agent.setAgentType(type);
+        return agent;
+    }
+
+    public static LocalizableObject createLobject(String id, String sensorType, Agent agent, Placing currentPlacing){
+        LocalizableObject lobject = modelFactory.createLocalizableObject();
+        lobject.setAgent(agent);
+        lobject.setId(id);
+        lobject.setSensorType(sensorType);
+        lobject.setCurrentPlacing(currentPlacing);
+        return lobject;
+    }
+
+    public static Placing createPlacing(Position position, Orientation orientation){
+        Placing placing = modelFactory.createPlacing();
+        placing.setPosition(position);
+        placing.setOrientation(orientation);
+        return placing;
+    }
+
+    public static Position createPosition(Point3D point3D, Float accuracy, ReferenceSystem refSystem){
+        Position position = modelFactory.createPosition();
+        position.setPoint(point3D);
+        Gaussian accrcy = modelFactory.createGaussian();
+        accrcy.setConfidenceInterval(accuracy);
+        position.setAccuracy(accrcy);
+        position.setReferenceSystem(refSystem);
+        return position;
+    }
+
+    public static Point3D createPoint3D(float x, float y, float z){
+        Point3D point3D = modelFactory.createPoint3D();
+        point3D.setX(x);
+        point3D.setY(y);
+        point3D.setZ(z);
+        return point3D;
+    }
+
+    public static ReferenceSystem createReferenceSystem(String name, String id, Placing origin){
+        ReferenceSystem refSystem = modelFactory.createReferenceSystem();
+        refSystem.setName(name);
+        refSystem.setId(id);
+        refSystem.setOrigin(origin);
+        return refSystem;
+    }
+
+    public static Zone createZone(String name, String id, List<Space> spaces){
+        Zone zone = modelFactory.createZone();
+        zone.setName(name);
+        zone.setId(id);
+        for (var space : spaces) {
+            zone.getSpace().add(space);
+        }
+        return zone;
+    }
+
+    public static Space createSpace(float x, float y, float z, Placing centrePoint){
+        Space space = modelFactory.createSpace();
+        space.setX(x);
+        space.setY(y);
+        space.setZ(z);
+        space.setCentrePoint(centrePoint);
+        return space;
+    }
+
+    public static Quaternion createOrientation(float x, float y, float z, float w){
+        Quaternion quaternion = modelFactory.createQuaternion();
+        quaternion.setX(x);
+        quaternion.setY(y);
+        quaternion.setZ(z);
+        quaternion.setW(w);
+        return quaternion;
+    }
+
+    public static POI getPoiByIdOrNull(String poiId) {
+        for (POI poi : wma.getAllPois()){
+            if(poi.getId().equals(poiId)){
+                return poi;
+            }
+        }
+        return null;
+    }
+}
diff --git a/src/main/java/ipos/project/Functionality/Odometry.java b/src/main/java/ipos/project/Functionality/Odometry.java
index 876404b2bddfcf033b08d69afcbc08286e7f077f..79a92852f11838b147ed191c7c990c331b4a5c79 100644
--- a/src/main/java/ipos/project/Functionality/Odometry.java
+++ b/src/main/java/ipos/project/Functionality/Odometry.java
@@ -1,15 +1,147 @@
 package ipos.project.Functionality;
 
-import ipos.models.SimpleScene.IposPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import org.apache.logging.log4j.LogManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.jms.annotation.JmsListener;
 import org.springframework.stereotype.Component;
 
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import java.util.MissingResourceException;
+
 @Component
 public class Odometry {
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    private final String agentId = "";
+    private static double accuracy;
+    private static double timeOfLastCalibration;
+    private static double timeLastSensorEvent;
+    private static double [] a = new double[]{0, 0, 0};
+    private static double [][] a_ori = new double[][]{{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0}};
+    private static double [] aOffset;
+    private static double [] v = new double[]{0, 0, 0};
+    private static double [] p = new double[]{0, 0, 0};
+    private static double [] delta = new double[]{0, 0, 0};
+    private static double [] vLast = new double[]{0, 0, 0};
+    private static double [] pLast = new double[]{0, 0, 0};
+    private static double NS2S = 1/1000.0;
+    private static boolean calibrated = false;
+    private static int index_ori = 0;
+    static SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
+
+    //public Odometry(String agentId) {
+    //  this.agentId = agentId;
+    //}
+    private static Date convertToDateViaInstant(LocalDateTime dateToConvert) {
+        return Date.from(dateToConvert.atZone(ZoneId.systemDefault()).toInstant());
+    }
+
+    private static LocalDateTime convertToLocalDateTimeViaInstant(Date dateToConvert){
+        return dateToConvert.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+    }
+    public static double average(double[] data) {
+        double sum = 0;
+        double average;
+
+        for(int i=0; i < data.length; i++){
+            sum = sum + data[i];
+        }
+        average = sum/data.length;
+        return average;
+    }
+    public static void calibrate (PositionEvent event) throws ParseException {
+        v = new double[] {0,0,0};
+        vLast = new double[] {0,0,0};
+        aOffset = new double[] {average(a_ori[0]),average(a_ori[1]),average(a_ori[2])};
+        accuracy = 0.03;
+        if (event.getPlacing().getPosition().getPoint() instanceof Point3D) {
+            pLast[0] = ((Point3D) event.getPlacing().getPosition().getPoint()).getX();
+            pLast[1] = ((Point3D) event.getPlacing().getPosition().getPoint()).getY();
+            pLast[2] = ((Point3D) event.getPlacing().getPosition().getPoint()).getZ();
+            p = pLast;
+        }
+        LOG.info("Odometry: timestamp" + event.getTimeStamp());
+        LocalDateTime eventTime = LocalDateTime.parse(event.getTimeStamp(), DateTimeFormatter.ISO_OFFSET_DATE_TIME);
+        Date date = convertToDateViaInstant(eventTime);
+
+        timeOfLastCalibration = date.getTime();
+        calibrated = true;
+    }
+
+    public static PositionEvent update(IMU imuRawdataEvent) throws ParseException {
+        IPos_DatamodelFactory datamodelFactory = IPos_DatamodelFactory.eINSTANCE;
+        Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+        Date date = sdf2.parse(imuRawdataEvent.getTimeStamp());
+
+        if (calibrated) {
+            double dt = (date.getTime() - timeLastSensorEvent) * NS2S;
+            a_ori[0][index_ori] = imuRawdataEvent.getAcceleration().getX();
+            a_ori[1][index_ori] = imuRawdataEvent.getAcceleration().getY();
+            a_ori[2][index_ori] = imuRawdataEvent.getAcceleration().getZ();
+            index_ori += 1;
+            if (index_ori>9) {
+                index_ori =0;
+            }
+            a[0] = imuRawdataEvent.getAcceleration().getX() - aOffset[0];
+            a[1] = imuRawdataEvent.getAcceleration().getY() - aOffset[1];
+            a[2] = imuRawdataEvent.getAcceleration().getZ() - aOffset[2];
+            for (int index = 0; index < 3; ++index) {
+                v[index] = a[index] * dt + vLast[index];
+                delta[index] = (v[index] + vLast[index]) / 2 * dt;
+                p[index] = pLast[index] + delta[index];
+                pLast[index] = p[index];
+                vLast[index] = v[index];
+            }
+            accuracy = (date.getTime() - timeOfLastCalibration + 500) * 0.0001;
+            timeLastSensorEvent = date.getTime();
+            Quaternion calOrientation = datamodelFactory.createQuaternion();
+            PositionEvent calPositionEvent = datamodelFactory.createPositionEvent();
+            Placing calPlacing = datamodelFactory.createPlacing();
+            LocalizableObject calLObject = datamodelFactory.createLocalizableObject();
+            Position calPosition = datamodelFactory.createPosition();
+            Point3D calPoint3D = datamodelFactory.createPoint3D();
+            Gaussian calGaussian = datamodelFactory.createGaussian();
+            calGaussian.setConfidenceInterval((float) accuracy);
+            calPoint3D.setX((float) p[0]);
+            calPoint3D.setY((float) p[1]);
+            calPoint3D.setZ((float) p[2]);
+            calOrientation.setX(0);
+            calOrientation.setY(0);
+            calOrientation.setZ(0);
+            calOrientation.setW(0);
+            calPosition.setPoint(calPoint3D);
+            calPosition.setAccuracy(calGaussian);
+            calPosition.setReferenceSystem(DataServices.getReferenceSystemByIdOrNull("ROOT"));
+            calPlacing.setPosition(calPosition);
+            calPlacing.setOrientation(calOrientation);
+            //calLObject.setId(imuRawdataEvent.getSensorId());
+            LocalDateTime timestamp_LDT=convertToLocalDateTimeViaInstant(date);
+
+
+            calPositionEvent.setLObjectId(imuRawdataEvent.getSensorId());
+            calPositionEvent.setTimeStamp(timestamp_LDT.toString() + "+00:00");
+            calPositionEvent.setPlacing(calPlacing);
+            return calPositionEvent;
+        }
+        else {
+            timeLastSensorEvent = date.getTime();
+            a_ori[0][index_ori] = imuRawdataEvent.getAcceleration().getX();
+            a_ori[1][index_ori] = imuRawdataEvent.getAcceleration().getY();
+            a_ori[2][index_ori] = imuRawdataEvent.getAcceleration().getZ();
+            index_ori += 1;
+            if (index_ori>9) {
+                index_ori =0;
+            }
 
+            throw new MissingResourceException("Odometry not calibrated!", "Odometry", "calibration");
+        }
+    }
     //TODO
 //    @JmsListener(destination = "/positions123", containerFactory = "myFactory")
 //    public void receiveMessage(IposPosition pos) {
diff --git a/src/main/java/ipos/project/Functionality/PositionCalculation.java b/src/main/java/ipos/project/Functionality/PositionCalculation.java
new file mode 100644
index 0000000000000000000000000000000000000000..80f354c358449920189704f7db3a987d2d2008a5
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/PositionCalculation.java
@@ -0,0 +1,44 @@
+package ipos.project.Functionality;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import org.apache.logging.log4j.LogManager;
+
+public class PositionCalculation {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+
+    public static PositionEvent calcPositionFromNfcOrNull(NFC nfcRawDataEvent) {
+        if (isMobileScanner(nfcRawDataEvent)){
+            return createPosEvent(nfcRawDataEvent.getScannerId(), nfcRawDataEvent.getTagId(), nfcRawDataEvent.getTimeStamp());
+        }
+        if(isMobileTag(nfcRawDataEvent)){
+            return createPosEvent(nfcRawDataEvent.getTagId(), nfcRawDataEvent.getScannerId(), nfcRawDataEvent.getTimeStamp());
+        }
+        LOG.warn("NFC-RawdataEvent could not be processed, as the provided scanner " +
+                "and/or tag-id could not be associated to an registered object and/or " +
+                "an registered poi");
+        return null;
+    }
+
+    private static PositionEvent createPosEvent(String lObjectId, String poiId, String timeStamp) {
+        PositionEvent positionEvent = modelFactory.createPositionEvent();
+        positionEvent.setLObjectId(lObjectId);
+        positionEvent.setTimeStamp(timeStamp);
+        positionEvent.setPlacing(DataServices.getPoiByIdOrNull(poiId).getPlacing());
+        return positionEvent;
+    }
+
+    private static boolean isMobileScanner(NFC nfcRawDataEvent) {
+        Boolean scannerIsMobile = DataServices.getLObjectByIdOrNull(nfcRawDataEvent.getScannerId()) != null;
+        Boolean tagIsFixed = DataServices.getPoiByIdOrNull(nfcRawDataEvent.getTagId()) != null;
+        return scannerIsMobile && tagIsFixed;
+    }
+
+    private static boolean isMobileTag(NFC nfcRawDataEvent) {
+        Boolean tagIsMobile = DataServices.getLObjectByIdOrNull(nfcRawDataEvent.getTagId()) != null;
+        Boolean scannerIsFixed = DataServices.getPoiByIdOrNull(nfcRawDataEvent.getScannerId()) != null;
+        return tagIsMobile && scannerIsFixed;
+    }
+}
diff --git a/src/main/java/ipos/project/Functionality/SRSConversion/Quaternion_math.java b/src/main/java/ipos/project/Functionality/SRSConversion/Quaternion_math.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a977da87e09b830dc75880fb960592bde795ba9
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/SRSConversion/Quaternion_math.java
@@ -0,0 +1,250 @@
+package ipos.project.Functionality.SRSConversion;
+
+public class Quaternion_math {
+    private float x;
+    private float y;
+    private float z;
+    private float w;
+    //private float[] matrixs;
+
+    public Quaternion_math(final Quaternion_math q) {
+        this(q.x, q.y, q.z, q.w);
+    }
+
+    public Quaternion_math(float x, float y, float z, float w) {
+        this.x = x;
+        this.y = y;
+        this.z = z;
+        this.w = w;
+    }
+
+    public void set(final Quaternion_math q) {
+        //matrixs = null;
+        this.x = q.x;
+        this.y = q.y;
+        this.z = q.z;
+        this.w = q.w;
+    }
+
+    public Quaternion_math(Vector_math axis, float angle) {
+        set(axis, angle);
+    }
+
+    public float norm() {
+        return  (float) Math.sqrt(dot(this));
+    }
+
+    public float getW() {
+        return w;
+    }
+
+    public float getX() {
+        return x;
+    }
+
+    public float getY() {
+        return y;
+    }
+
+    public float getZ() {
+        return z;
+    }
+
+    /**
+     * @param axis
+     *            rotation axis, unit vector
+     * @param angle
+     *            the rotation angle
+     * @return this
+     */
+    public Quaternion_math set(Vector_math axis, float angle) {
+        //matrixs = null;
+        angle = (float) Math.toRadians(angle);
+        float s = (float) Math.sin(angle);
+        w = (float) Math.cos(angle);
+        x = axis.getX() * s;
+        y = axis.getY() * s;
+        z = axis.getZ() * s;
+        //System.out.println("angle set: " + angle);
+        return this;
+    }
+
+    public Quaternion_math mulThis(Quaternion_math q) {
+        //matrixs = null;
+        float nw = w * q.w - x * q.x - y * q.y - z * q.z;
+        float nx = w * q.x + x * q.w + y * q.z - z * q.y;
+        float ny = w * q.y + y * q.w + z * q.x - x * q.z;
+        z = w * q.z + z * q.w + x * q.y - y * q.x;
+        w = nw;
+        x = nx;
+        y = ny;
+        return this;
+    }
+
+    public Quaternion_math scaleThis(float scale) {
+        if (scale != 1) {
+            //matrixs = null;
+            w *= scale;
+            x *= scale;
+            y *= scale;
+            z *= scale;
+        }
+        return this;
+    }
+
+    public Quaternion_math divThis(float scale) {
+        if (scale != 1) {
+            //matrixs = null;
+            w /= scale;
+            x /= scale;
+            y /= scale;
+            z /= scale;
+        }
+        return this;
+    }
+
+    public float dot(Quaternion_math q) {
+        return x * q.x + y * q.y + z * q.z + w * q.w;
+    }
+
+    public boolean equals(Quaternion_math q) {
+        return x == q.x && y == q.y && z == q.z && w == q.w;
+    }
+
+    public Quaternion_math interpolateThis(Quaternion_math q, float t) {
+        if (!equals(q)) {
+            float d = dot(q);
+            float qx, qy, qz, qw;
+
+            if (d < 0f) {
+                qx = -q.x;
+                qy = -q.y;
+                qz = -q.z;
+                qw = -q.w;
+                d = -d;
+            } else {
+                qx = q.x;
+                qy = q.y;
+                qz = q.z;
+                qw = q.w;
+            }
+
+            float f0, f1;
+
+            if ((1 - d) > 0.1f) {
+                float angle = (float) Math.acos(d);
+                float s = (float) Math.sin(angle);
+                float tAngle = t * angle;
+                f0 = (float) Math.sin(angle - tAngle) / s;
+                f1 = (float) Math.sin(tAngle) / s;
+            } else {
+                f0 = 1 - t;
+                f1 = t;
+            }
+
+            x = f0 * x + f1 * qx;
+            y = f0 * y + f1 * qy;
+            z = f0 * z + f1 * qz;
+            w = f0 * w + f1 * qw;
+        }
+
+        return this;
+    }
+
+    public Quaternion_math inverse() {
+        float norm = norm();
+        if (norm > 0.0) {
+            float invNorm = 1.0f / norm;
+            return new Quaternion_math(-x * invNorm, -y * invNorm, -z * invNorm, w
+                    * invNorm);
+        }
+        // return an invalid result to flag the error
+        return new Quaternion_math(0,0,0,0);
+    }
+    public Quaternion_math normalizeThis() {
+        return divThis(norm());
+    }
+
+    public Quaternion_math interpolate(Quaternion_math q, float t) {
+        return new Quaternion_math(this).interpolateThis(q, t);
+    }
+
+
+
+
+    /**
+     * Converts this Quaternion_math into a matrix, returning it as a float array.
+     */
+    public float[] toMatrix() {
+        float[] matrixs = new float[16];
+        toMatrix(matrixs);
+        return matrixs;
+    }
+    /** Conjugate the Quaternion_math.
+     *
+     * @return This Quaternion_math for chaining */
+    public Quaternion_math conjugate () {
+        x = -x;
+        y = -y;
+        z = -z;
+        return this;
+    }
+
+    /** Multiplies this Quaternion_math with another one
+     *
+     * @param q Quaternion_math to multiply with
+     * @return This Quaternion_math for chaining */
+    public Quaternion_math mul (Quaternion_math q) {
+        float newX = w * q.x + x * q.w + y * q.z - z * q.y;
+        float newY = w * q.y + y * q.w + z * q.x - x * q.z;
+        float newZ = w * q.z + z * q.w + x * q.y - y * q.x;
+        float newW = w * q.w - x * q.x - y * q.y - z * q.z;
+        x = newX;
+        y = newY;
+        z = newZ;
+        w = newW;
+        return this;
+    }
+
+    /** Multiplies this Quaternion_math with another one in the form of q * this
+     *
+     * @param q Quaternion_math to multiply with
+     * @return This Quaternion_math for chaining */
+    public Quaternion_math mulLeft (Quaternion_math q) {
+        float newX = q.w * x + q.x * w + q.y * z - q.z * y;
+        float newY = q.w * y + q.y * w + q.z * x - q.x * z;
+        float newZ = q.w * z + q.z * w + q.x * y - q.y * x;
+        float newW = q.w * w - q.x * x - q.y * y - q.z * z;
+        x = newX;
+        y = newY;
+        z = newZ;
+        w = newW;
+        return this;
+    }
+
+        /**
+         * Converts this Quaternion_math into a matrix, placing the values into the given array.
+         * @param matrixs 16-length float array.
+         */
+    public final void toMatrix(float[] matrixs) {
+        matrixs[3] = 0.0f;
+        matrixs[7] = 0.0f;
+        matrixs[11] = 0.0f;
+        matrixs[12] = 0.0f;
+        matrixs[13] = 0.0f;
+        matrixs[14] = 0.0f;
+        matrixs[15] = 1.0f;
+
+        matrixs[0] = (float) (1.0f - (2.0f * ((y * y) + (z * z))));
+        matrixs[1] = (float) (2.0f * ((x * y) - (z * w)));
+        matrixs[2] = (float) (2.0f * ((x * z) + (y * w)));
+
+        matrixs[4] = (float) (2.0f * ((x * y) + (z * w)));
+        matrixs[5] = (float) (1.0f - (2.0f * ((x * x) + (z * z))));
+        matrixs[6] = (float) (2.0f * ((y * z) - (x * w)));
+
+        matrixs[8] = (float) (2.0f * ((x * z) - (y * w)));
+        matrixs[9] = (float) (2.0f * ((y * z) + (x * w)));
+        matrixs[10] = (float) (1.0f - (2.0f * ((x * x) + (y * y))));
+    }
+}
diff --git a/src/main/java/ipos/project/Functionality/SRSConversion/SRSConversion.java b/src/main/java/ipos/project/Functionality/SRSConversion/SRSConversion.java
new file mode 100644
index 0000000000000000000000000000000000000000..70de57a17d69ed7a7c63d71479eb377961f44c20
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/SRSConversion/SRSConversion.java
@@ -0,0 +1,115 @@
+package ipos.project.Functionality.SRSConversion;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.emf.common.util.EList;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+
+/*
+This class contains methods to convert the coordinate system of positions.
+All reference Systems should be defined in the ROOT system.
+*/
+public class SRSConversion {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    /*
+    This function converts the coordinate system of a position to a desired coordinate system.
+    p1 is the coordinate of the position in the original coordinate system
+    ref_1 is the origin point of the original coordinate system (A Point3D in ROOT)
+    ref_2 is the origin point of the desired coordinate system (A Point3D in ROOT)
+    quat_1 is the rotation of the original coordinate system (against ROOT)
+    quat_2 is the rotation of the desired coordinate system (against ROOT)
+    */
+    public static void switchSRS(Placing pla, ReferenceSystem ref){
+        IPos_DatamodelFactory datamodelFactory = IPos_DatamodelFactory.eINSTANCE;
+        Position pos = pla.getPosition();
+        Point3D P = (Point3D) pos.getPoint();
+
+        Point3D R = (Point3D) ref.getOrigin().getPosition().getPoint();
+        Quaternion Q1 = (Quaternion) pla.getOrientation();
+        Quaternion Q2 = (Quaternion) ref.getOrigin().getOrientation();
+        String ref_id = ref.getId();
+        String pla_ref_id = pla.getPosition().getReferenceSystem().getId();
+
+        Vector_math p1 = new Vector_math(P.getX(), P.getY(), P.getZ());
+        Vector_math ref_org = new Vector_math(R.getX(), R.getY(), R.getZ());
+        Quaternion_math quat_1 = new Quaternion_math(Q1.getX(), Q1.getY(), Q1.getZ(), Q1.getW());
+        Quaternion_math quat_2 = new Quaternion_math(Q2.getX(), Q2.getY(), Q2.getZ(), Q2.getW());
+        //System.out.println("Quaterion_1: " + quat_1.getX() + ", "+ quat_1.getY() + ", "+ quat_1.getZ() + ", " + quat_1.getW());
+        //System.out.println("Quaterion_2: " + quat_2.getX() + ", "+ quat_2.getY() + ", "+ quat_2.getZ() + ", " + quat_2.getW());
+
+
+        if (pla_ref_id.equals(ref_id)) {
+            //System.out.println("inversed Quaterion_1: " + quat_1.inverse().getX() + ", "+ quat_1.inverse().getY() + ", "+ quat_1.inverse().getZ() + ", " + quat_1.inverse().getW());
+            LOG.info("INDFRO-DEBUG: Transforming placing-SRS " + pla_ref_id + " to SRS " + ref.getOrigin().getPosition().getReferenceSystem().getId());
+            quat_1.mulLeft(quat_2.inverse());
+
+            //System.out.println("phase 1 transfrom: " + p1.getX() + ", "+ p1.getY() + ", "+ p1.getZ());
+            p1.rotate_quaternion(quat_2);
+            //System.out.println("phase 1 transfrom: " + p1.getX() + ", "+ p1.getY() + ", "+ p1.getZ());
+            p1.add(ref_org);
+            pos.setReferenceSystem(ref.getOrigin().getPosition().getReferenceSystem());
+
+        }
+        else if(pla_ref_id.equals(ref.getOrigin().getPosition().getReferenceSystem().getId())) {
+            LOG.info("INDFRO-DEBUG: Transforming placing-SRS " + pla_ref_id + " to SRS " + ref_id);
+            //System.out.println("inversed Quaterion_1: " + quat_1.inverse().getX() + ", "+ quat_1.inverse().getY() + ", "+ quat_1.inverse().getZ() + ", " + quat_1.inverse().getW());
+            quat_1.mulLeft(quat_2);
+            p1.substract(ref_org);
+            p1.rotate_quaternion(quat_2.inverse());
+            pos.setReferenceSystem(ref);
+        }
+        else {
+            //error message
+        }
+        Q1.setX(quat_1.getX());
+        Q1.setY(quat_1.getY());
+        Q1.setZ(quat_1.getZ());
+        Q1.setW(quat_1.getW());
+        P.setX(p1.getX());
+        P.setY(p1.getY());
+        P.setZ(p1.getZ());
+        pla.setOrientation(Q1);
+        pos.setPoint(P);
+        pla.setPosition(pos);
+    }
+    /*public static void switchSRSZone(Zone zone, ReferenceSystem ref){
+        IPos_DatamodelFactory datamodelFactory = IPos_DatamodelFactory.eINSTANCE;
+        EList spaceList = zone.getSpace();
+        for (int i = 0; i < spaceList.size(); i++) {
+            Space S = (Space)spaceList.get(i);
+            Placing P = S.getCentrePoint();
+            Position Pos = P.getPosition();
+            positionInOtherSystem(Pos, ref);
+            Quaternion Q1 = (Quaternion) P.getOrientation();
+            Quaternion Q2 = (Quaternion) ref.getOrigin().getOrientation();
+
+            Quaternion_math quat_1 = new Quaternion_math(Q1.getX(), Q1.getY(), Q1.getZ(), Q1.getW());
+            Quaternion_math quat_2 = new Quaternion_math(Q2.getX(), Q2.getY(), Q2.getZ(), Q2.getW());
+            quat_1.mulLeft(quat_2);
+            Q1.setX(quat_1.getX());
+            Q1.setY(quat_1.getY());
+            Q1.setZ(quat_1.getZ());
+            Q1.setW(quat_1.getW());
+            P.setOrientation(Q1);
+            P.setPosition(Pos);
+            S.setCentrePoint(P);
+            spaceList.set(i, S);
+        }
+    }
+    public float[] getCordInOtherSystem (float[] cod, float[] ref, float[] quaternion){
+        float[] new_cod = new float[3];
+        //float[] conv_vec = new float[16];
+        Vector_math cod_vec = new Vector_math(cod[0], cod[1], cod[2]);
+        Vector_math ref_new = new Vector_math(ref[0], ref[1], ref[2]);
+        Quaternion_math quaternion_new  = new Quaternion_math(quaternion[0], quaternion[1], quaternion[2], quaternion[3]);
+        //conv_vec = quaternion_new.toMatrix();
+        //float[][] conv_matrix = new float[][]{{conv_vec[0], conv_vec[1], conv_vec[2]}, {conv_vec[3], conv_vec[4], conv_vec[5]}, {conv_vec[6], conv_vec[7], conv_vec[8]}};
+        cod_vec.transform(quaternion_new);
+        cod_vec.add(ref_new);
+        new_cod[0] = cod_vec.getX();
+        new_cod[1] = cod_vec.getY();
+        new_cod[2] = cod_vec.getZ();
+        return new_cod;
+    }*/
+}
diff --git a/src/main/java/ipos/project/Functionality/SRSConversion/Test plan.txt b/src/main/java/ipos/project/Functionality/SRSConversion/Test plan.txt
new file mode 100644
index 0000000000000000000000000000000000000000..62b39ad134a7ba27841897ef4ee4a9ad0cb2a71b
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/SRSConversion/Test plan.txt	
@@ -0,0 +1,31 @@
+Test rotation based on quaternion:
+
+quaternion calculator: https://www.vcalc.com/equation/?uuid=fed09682-75fb-11e6-9770-bc764e2038f2
+
+Definition of reference systems:
+	def CITI_ROOT against ROOT (0.5, 0.75, 1) rot: (0.7071067811865477,0.7071067811865474,0.0,0.0) //Rotate 90 degrees around x axis.
+	def CITI_ROBOLAB against CETI_ROOT (0.2,0.2,0.2) rot: (0.4082481001180531,0.4082481001180531,0.4082481001180531,0.7071067811865477) //Rotation 90 degrees around (0,0,1)
+	def CETI_ROBOTARM_CELL against CITI_ROBOLAB (0.0, 1.2, 2.2) rot: (0.2705992818596786,0.2705992818596786,0.0,0.9238795325112868)
+	def TL_TESTHALL against ROOT (40.0,60.0,0) rot (0.0,0.0,0.21643961393810285,0.9762960071199334)
+	
+
+1. 	CITI_ROOT -> ROOT -> CITI_ROOT -> CITI_ROBOLAB -> CETI_ROBOTARM_CELL
+	
+	original placing: (1,1,1) rot:(1,0,0,0) ref: CETI_ROOT 
+	
+	change to ref: ROOT
+	expected result:(1.5, 1.75, 0) rot:  (0.7071067811865474,0.0,0.0,0.7071067811865477) ref: ROOT
+	
+	change back to ref: CETI_ROOT
+	expected result: (1,1,1) rot:(1,0,0,0) ref: CETI_ROOT
+	
+	change to ref: CITI_ROBOLAB
+	expected result: (0.8, 0.8, 0.8) rot: (0.7071067811865477, 0.4082481001180531, -0.4082481001180531, w: -0.4082481001180531)
+	
+	change to ref: CETI_ROBOTARM_CELL
+	expected result: (-0.07573951,0.47573978,-1.5899485) rot:(0.4323382,0.37717205,-0.45804298,-0.6789863) 
+	
+
+2. 	CETI_ROBOTARM_CELL -> CITI_ROBOLAB -> CITI_ROOT -> ROOT -> CITI_ROOT -> CITI_ROBOLAB -> CETI_ROBOTARM_CELL
+	
+	original placing: (-0.07573951,0.47573978,-1.5899485) rot:(0.4323382,0.37717205,-0.45804298,-0.6789863) ref: CETI_ROBOTARM_CELL 
\ No newline at end of file
diff --git a/src/main/java/ipos/project/Functionality/SRSConversion/TestSRSConverter.java b/src/main/java/ipos/project/Functionality/SRSConversion/TestSRSConverter.java
new file mode 100644
index 0000000000000000000000000000000000000000..81debca8c746886b5805737b5c59b3e98922f2a1
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/SRSConversion/TestSRSConverter.java
@@ -0,0 +1,75 @@
+package ipos.project.Functionality.SRSConversion;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.Functionality.SRSConversion.SRSConversion;
+
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+
+public class TestSRSConverter {
+    public static void test() throws ParseException {
+        IPos_DatamodelFactory datamodelFactory = IPos_DatamodelFactory.eINSTANCE;
+        Vector_math axis = new Vector_math(1, 0,0);
+        Point3D testPoint3D = datamodelFactory.createPoint3D();
+        Position testPosition = datamodelFactory.createPosition();
+        Placing testPlacing = datamodelFactory.createPlacing();
+
+        testPoint3D.setX((float) 0);
+        testPoint3D.setY((float) 1);
+        testPoint3D.setZ((float) 0);
+
+        ReferenceSystem testRef_1 = datamodelFactory.createReferenceSystem();
+        Placing refPlacing_1 = datamodelFactory.createPlacing();
+        Position refPosition_1 = datamodelFactory.createPosition();
+        Point3D ref_1 = datamodelFactory.createPoint3D();
+        Quaternion rot_1 = datamodelFactory.createQuaternion();
+        Quaternion_math rot_1_math = new Quaternion_math(axis, 90);
+        rot_1.setX(rot_1_math.getX());
+        rot_1.setY(rot_1_math.getY());
+        rot_1.setZ(rot_1_math.getZ());
+        rot_1.setW(rot_1_math.getW());
+        ref_1.setX(1);
+        ref_1.setY(1);
+        ref_1.setZ(1);
+        refPosition_1.setPoint(ref_1);
+        refPlacing_1.setPosition(refPosition_1);
+        refPlacing_1.setOrientation(rot_1);
+        testRef_1.setId("CITI");
+        testRef_1.setOrigin(refPlacing_1);
+        testPosition.setPoint(testPoint3D);
+        testPosition.setReferenceSystem(testRef_1);
+        testPlacing.setPosition(testPosition);
+
+
+        ReferenceSystem testRef_2 = datamodelFactory.createReferenceSystem();
+        Placing refPlacing_2 = datamodelFactory.createPlacing();
+        Position refPosition_2 = datamodelFactory.createPosition();
+        Point3D ref_2 = datamodelFactory.createPoint3D();
+        Quaternion rot_2 = datamodelFactory.createQuaternion();
+        Quaternion_math rot_2_math = new Quaternion_math(axis, 0);
+        rot_2.setX(rot_2_math.getX());
+        rot_2.setY(rot_2_math.getY());
+        rot_2.setZ(rot_2_math.getZ());
+        rot_2.setW(rot_2_math.getW());
+        ref_2.setX(0);
+        ref_2.setY(0);
+        ref_2.setZ(0);
+        refPosition_2.setPoint(ref_2);
+        refPlacing_2.setPosition(refPosition_2);
+        refPlacing_2.setOrientation(rot_2);
+        testRef_2.setId("ROOT");
+        testRef_2.setOrigin(refPlacing_2);
+
+
+        System.out.println("Position: refID " + ": " + testPosition.getReferenceSystem().getId());
+        System.out.println("Position: coord " + ": " + testPosition.getPoint());
+
+        SRSConversion.switchSRS(testPlacing, testRef_2);
+        System.out.println("Position: refID " + ": " + testPosition.getReferenceSystem().getId());
+        System.out.println("Position: coord " + ": " + testPosition.getPoint());
+
+
+
+    }
+}
diff --git a/src/main/java/ipos/project/Functionality/SRSConversion/Vector_math.java b/src/main/java/ipos/project/Functionality/SRSConversion/Vector_math.java
new file mode 100644
index 0000000000000000000000000000000000000000..5d5b0a35a987a001eed6c078344dba5156514de7
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/SRSConversion/Vector_math.java
@@ -0,0 +1,96 @@
+package ipos.project.Functionality.SRSConversion;
+
+public final class Vector_math {
+    private static Quaternion_math tmp1 = new Quaternion_math(0, 0, 0, 0);
+    private static Quaternion_math tmp2 = new Quaternion_math(0, 0, 0, 0);
+    private float x,y,z;
+
+    public float getX() {
+        return x;
+    }
+
+    public float getY() {
+        return y;
+    }
+
+    public float getZ() {
+        return z;
+    }
+
+    public Vector_math(float ix, float iy, float iz) {
+        x = ix;
+        y = iy;
+        z = iz;
+    }
+
+    public void set(float ix, float iy, float iz) {
+        x = ix;
+        y = iy;
+        z = iz;
+    }
+
+    public double magnitude() {
+        return Math.sqrt(x*x+y*y+z*z);
+    }
+
+    public void multiply(float f) {
+        x *= f;
+        y *= f;
+        z *= f;
+    }
+
+    public void normalise() {
+        double mag = magnitude();
+        x /= mag;
+        y /= mag;
+        z /= mag;
+    }
+    public void add(Vector_math v) {
+        x += v.x;
+        y += v.y;
+        z += v.z;
+    }
+    public void substract(Vector_math v) {
+        x -= v.x;
+        y -= v.y;
+        z -= v.z;
+    }
+    public float dot (Vector_math v){
+        float dotProduct;
+        dotProduct = x * v.x + y * v.y  +z * v.z;
+        return dotProduct;
+    }
+    public void cross (Vector_math v){
+        float xt = x;
+        float yt = y;
+        float zt = z;
+        x = yt * v.z - zt * v.y;
+        y = zt * v.x - xt * v.z;
+        z = xt * v.y - yt * v.x;
+    }
+    public void rotate_quaternion (Quaternion_math q) {
+        // Extract the scalar part of the quaternion
+        Vector_math u = new Vector_math(q.getX(),q.getY(),q.getZ());
+
+        Vector_math temp1 = new Vector_math(x,y,z);
+        Vector_math temp2 = new Vector_math(q.getX(),q.getY(),q.getZ());
+
+        float s = q.getW();
+        //System.out.println("s: " + s);
+        //System.out.println("Quaternion Vector: " + u.getX() + ", "+ u.getY() + ", "+ u.getZ());
+
+        // Do the math
+        temp2.multiply(2.0f * this.dot(u));
+        temp1.cross(u);
+        temp1.multiply(2.0f * s);
+        //System.out.println("temp1: " + temp1.getX() + ", "+ temp1.getY() + ", "+ temp1.getZ());
+        //System.out.println("temp2: " + temp2.getX() + ", "+ temp2.getY() + ", "+ temp2.getZ());
+        //System.out.println("phase 1 transfrom: " + this.getX() + ", "+ this.getY() + ", "+ this.getZ());
+        this.multiply(s * s - u.dot(u));
+        //System.out.println("phase 2 transfrom: " + this.getX() + ", "+ this.getY() + ", "+ this.getZ());
+        this.add(temp1);
+        //System.out.println("phase 3 transfrom: " + this.getX() + ", "+ this.getY() + ", "+ this.getZ());
+        this.add(temp2);
+        //System.out.println("phase 4 transfrom: " + this.getX() + ", "+ this.getY() + ", "+ this.getZ());
+    }
+}
diff --git a/src/main/java/ipos/project/Functionality/SensorDataFusion.java b/src/main/java/ipos/project/Functionality/SensorDataFusion.java
new file mode 100644
index 0000000000000000000000000000000000000000..20a73640f2978fc741efa9e019df447eb4885b48
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/SensorDataFusion.java
@@ -0,0 +1,117 @@
+package ipos.project.Functionality;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Agent;
+import ipos.project.DataModellntegration.iPos_Datamodel.Gaussian;
+import ipos.project.DataModellntegration.iPos_Datamodel.LocalizableObject;
+import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
+import ipos.project.UseCaseController.PositionMonitoring;
+import org.apache.logging.log4j.LogManager;
+
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+public class SensorDataFusion {
+
+    private static Map<String, List<PositionEvent>> recentEventStorage = new HashMap<>();
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    /**
+     * Side-effect: calls updates recent-event storage
+     *
+     * @param positionEvent
+     * @return
+     */
+    public static boolean isMostAccuratePositionAvailable(PositionEvent positionEvent) {
+        try {
+            Agent agent = DataServices.getAgentForLocalizableObject(positionEvent.getLObjectId());
+            List<PositionEvent> eventsForAgent = getEventStorageForAgentOrCreate(agent.getId());
+            updateRecentEventStorage(eventsForAgent, positionEvent);
+            return hasBestAccuracyAmongStoredEvents(positionEvent, eventsForAgent);
+
+        } catch (IllegalArgumentException e) {
+            LOG.warn("Sensor-data-fusion could not be applied to position-event as no LocalizableObject with " +
+                    "the provided sensor-id could be found, or no agent" +
+                    "is associated to the LocalizableObject that has been found.");
+            return false;
+        }
+    }
+
+    /**
+     * Assumption: The larger the accuracy-value the worse is the accuracy.
+     * Accuracy == 0 is the best possible accuracy.
+     * Note: the accuracy-value corresponds conceptually to the radius of
+     * the circle that indicates the potential positions of the agent.
+     * @param positionEvent
+     * @param eventsForAgent
+     * @return
+     */
+    private static boolean hasBestAccuracyAmongStoredEvents(PositionEvent positionEvent, List<PositionEvent> eventsForAgent) {
+        for (PositionEvent storedEvent : eventsForAgent){
+            float storedAccuracy = ((Gaussian) storedEvent.getPlacing().getPosition().getAccuracy()).getConfidenceInterval();
+            float eventAccuracy = ((Gaussian) positionEvent.getPlacing().getPosition().getAccuracy()).getConfidenceInterval();;
+            boolean eventsOriginatedFromDifferentSensors = !storedEvent.getLObjectId().equals(positionEvent.getLObjectId()); // important to make sure that the current IMU-position is not hidden behind older ones
+            logging_sdf(positionEvent, storedEvent);
+            if (storedAccuracy < eventAccuracy & eventsOriginatedFromDifferentSensors){ // it is important not to use <= here, as at least the current position event itself is contained in the list
+                logging_sdf(positionEvent);
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private static void logging_sdf(PositionEvent positionEvent, PositionEvent storedEvent) {
+        LocalDateTime eventTime = LocalDateTime.parse(positionEvent.getTimeStamp(), DateTimeFormatter.ISO_OFFSET_DATE_TIME);
+        LocalDateTime storedTime = LocalDateTime.parse(storedEvent.getTimeStamp(), DateTimeFormatter.ISO_OFFSET_DATE_TIME);
+        LOG.info("SDF-DEBUG: distance: " + Duration.between(storedTime, eventTime).toMillis());
+    }
+
+    private static void logging_sdf(PositionEvent positionEvent) {
+        LocalizableObject lObject = PositionMonitoring.getLObjectByIdOrNull(positionEvent.getLObjectId());
+        String sensorType = lObject.getSensorType();
+        String timestamp = positionEvent.getTimeStamp();
+        String sensorId = positionEvent.getLObjectId();
+        String agentId = lObject.getAgent().getId();
+        LOG.info("SDF: SensorDataFusion rejected: sensorType: " + sensorType + " timestamp: " + timestamp + " sensorId: " + sensorId + "agentId: " + agentId);
+    }
+
+    private static void updateRecentEventStorage(List<PositionEvent> eventsForAgent, PositionEvent positionEvent) throws IllegalArgumentException {
+        removeOldEvents(eventsForAgent);
+        eventsForAgent.add(0, positionEvent);
+    }
+
+    /**
+     * Removes all position-events older than SDF_TIME_INTERVAL from the recentEventStorage.
+     * @param eventsForAgent
+     */
+    private static void removeOldEvents(List<PositionEvent> eventsForAgent) {
+        LocalDateTime now = LocalDateTime.now();
+        boolean removeSubsequentElements = false;
+        for (Iterator<PositionEvent> eventIt = eventsForAgent.iterator(); eventIt.hasNext();){
+            PositionEvent currEvent = eventIt.next();
+            if (removeSubsequentElements){
+                eventIt.remove(); // removes element of the list that was returned by the last call to next()
+                continue;
+            }
+            LocalDateTime eventTime = LocalDateTime.parse(currEvent.getTimeStamp(), DateTimeFormatter.ISO_OFFSET_DATE_TIME);
+            long eventAge = Duration.between(eventTime, now).toMillis();
+            LOG.info("SDF-DEBUG: eventAge: " + eventAge + " ; timestamp: " + currEvent.getTimeStamp() + " ; now: " + now);
+            if ( eventAge > PositionMonitoring.SDF_TIME_INTERVAL){
+                eventIt.remove();
+                removeSubsequentElements = true;
+            }
+        }
+    }
+
+    private static List<PositionEvent> getEventStorageForAgentOrCreate(String agentId) {
+        List<PositionEvent> eventsForAgent = recentEventStorage.get(agentId);
+        if (eventsForAgent == null){
+            eventsForAgent = new ArrayList<PositionEvent>();
+            recentEventStorage.put(agentId, eventsForAgent);
+        }
+        return eventsForAgent;
+    }
+
+
+}
diff --git a/src/main/java/ipos/project/Functionality/Triangulation.java b/src/main/java/ipos/project/Functionality/Triangulation.java
new file mode 100644
index 0000000000000000000000000000000000000000..576a3fcf15508da5472ba4ed2da610fb0a25fff9
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/Triangulation.java
@@ -0,0 +1,117 @@
+package ipos.project.Functionality;
+
+import com.lemmingapex.trilateration.NonLinearLeastSquaresSolver;
+import com.lemmingapex.trilateration.TrilaterationFunction;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.UseCaseController.PositionMonitoring;
+import org.apache.commons.math3.fitting.leastsquares.LeastSquaresOptimizer;
+import org.apache.commons.math3.fitting.leastsquares.LevenbergMarquardtOptimizer;
+import org.apache.commons.math3.linear.RealMatrix;
+import org.apache.commons.math3.linear.RealVector;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.emf.common.util.EMap;
+
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.lang.*;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.MissingResourceException;
+import java.util.Optional;
+
+public class Triangulation {
+    private static final int MIN_NUMBER_OF_BEACONS = 3;
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+
+    public static Optional<PositionEvent> update(UWB uwbRawDataEvent) throws ParseException {
+
+        if(eventNotApplicable(uwbRawDataEvent)){
+            return Optional.empty();
+        }
+
+        double[][] positions = new double[][]{{0, 0}, {0, 0}, {0, 0}, {0, 0}};
+        double[] distances = new double[]{0,0,0,0};
+        HashMap uwbData = (HashMap) uwbRawDataEvent.getDistances();
+        int index = 0;
+        for (Object key : uwbData.keySet()) {
+            Point3D beaconPoint3D = modelFactory.createPoint3D();
+            beaconPoint3D = (Point3D) DataServices.getPoiByIdOrNull((String) key).getPlacing().getPosition().getPoint();
+            positions[index] = new double[]{beaconPoint3D.getX(), beaconPoint3D.getY()};
+            distances[index] = (Double) uwbData.get(key);
+            index ++;
+        }
+
+
+        Point3D tagPoint3D = modelFactory.createPoint3D();
+        Position tagPosition = modelFactory.createPosition();
+        Placing tagPlacing = modelFactory.createPlacing();
+        Gaussian tagGaussian = modelFactory.createGaussian();
+
+        NonLinearLeastSquaresSolver solver = new NonLinearLeastSquaresSolver(new TrilaterationFunction(positions, distances), new LevenbergMarquardtOptimizer());
+        LeastSquaresOptimizer.Optimum optimum = solver.solve();
+
+        // the answer
+        double[] centroid = optimum.getPoint().toArray();
+
+        // error and geometry information; may throw SingularMatrixException depending the threshold argument provided
+        RealVector standardDeviation = optimum.getSigma(0);
+        RealMatrix covarianceMatrix = optimum.getCovariances(0);
+
+        tagPoint3D.setX((float) centroid[0]);
+        tagPoint3D.setY((float) centroid[1]);
+        // tagPoint3D.setZ((float) PositionMonitoring.TRIANGULATION_HEIGHT);
+        tagGaussian.setConfidenceInterval((float) standardDeviation.getLInfNorm());
+        tagPosition.setPoint(tagPoint3D);
+        tagPosition.setAccuracy(tagGaussian);
+        tagPosition.setReferenceSystem(DataServices.getReferenceSystemByIdOrNull("ROOT"));
+        tagPlacing.setPosition(tagPosition);
+        tagPlacing.setOrientation(modelFactory.createQuaternion());
+        return Optional.of(createPosEvent(uwbRawDataEvent.getSensorId(), uwbRawDataEvent.getTimeStamp(), tagPlacing));
+
+    }
+
+    private static boolean eventNotApplicable(UWB uwbRawDataEvent) {
+        return notEnoughBeaconDistances(uwbRawDataEvent) || includesUnknownBeacon(uwbRawDataEvent);
+    }
+
+    private static boolean includesUnknownBeacon(UWB uwbRawDataEvent) {
+        HashMap<String, Double> uwbData = (HashMap<String, Double>) uwbRawDataEvent.getDistances();
+        for (String beaconId : uwbData.keySet()){
+            if (null == DataServices.getPoiByIdOrNull(beaconId)){
+                LOG.info("UWBRawDataEvent contains unknown beacon: " + beaconId);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private static boolean notEnoughBeaconDistances(UWB uwbRawDataEvent) {
+        HashMap uwbData = (HashMap) uwbRawDataEvent.getDistances();
+        if(uwbData.keySet().size() < Triangulation.MIN_NUMBER_OF_BEACONS){
+            LOG.info("UWBRawDataEvent only contains " + uwbData.keySet().size() + " beacon-distances. Can not calculate a position");
+            return true;
+        }else {
+            return false;
+        }
+    }
+
+    private static double[] getPositionFromBeaconId(String beaconId) {
+        Point3D beaconPos = modelFactory.createPoint3D();
+        beaconPos = (Point3D) DataServices.getPoiByIdOrNull(beaconId).getPlacing().getPosition().getPoint();
+        double[] position = new double[]{beaconPos.getX(), beaconPos.getY(), beaconPos.getZ()};
+        return position;
+    }
+    private static PositionEvent createPosEvent(String lObjectId, String timeStamp, Placing placing) {
+        PositionEvent positionEvent = modelFactory.createPositionEvent();
+        positionEvent.setLObjectId(lObjectId);
+        positionEvent.setTimeStamp(timeStamp);
+        positionEvent.setPlacing(placing);
+        return positionEvent;
+    }
+}
diff --git a/src/main/java/ipos/project/Functionality/eventfilter/BeaconFilteringResult.java b/src/main/java/ipos/project/Functionality/eventfilter/BeaconFilteringResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e8a1f57d29bb6296a88320ee44a34e05d097fe4
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/eventfilter/BeaconFilteringResult.java
@@ -0,0 +1,18 @@
+package ipos.project.Functionality.eventfilter;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Beacon;
+
+public class BeaconFilteringResult extends FilteringResult {
+
+    private Beacon beaconRawdataEvent;
+
+    public BeaconFilteringResult(String monitoringTaskId, Beacon beaconRawdataEvent, Boolean isBlocking) {
+        super(monitoringTaskId, isBlocking);
+        this.beaconRawdataEvent = beaconRawdataEvent;
+     }
+
+    public Beacon getBeaconRawdataEvent() {
+        return beaconRawdataEvent;
+    }
+
+}
diff --git a/src/main/java/ipos/project/Functionality/eventfilter/FilteringResult.java b/src/main/java/ipos/project/Functionality/eventfilter/FilteringResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..82a7c413938c9345273d5af262d17d1658b96b15
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/eventfilter/FilteringResult.java
@@ -0,0 +1,24 @@
+package ipos.project.Functionality.eventfilter;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Beacon;
+
+public class FilteringResult {
+
+    private String monitoringTaskId;
+    private boolean isBlocking;
+
+    public FilteringResult(String monitoringTaskId, Boolean isBlocking) {
+        this.monitoringTaskId = monitoringTaskId;
+        this.isBlocking = isBlocking;
+    }
+
+    public String getMonitoringTaskId() {
+        return monitoringTaskId;
+    }
+
+    public boolean hasBlockedEvent(){
+        return this.isBlocking;
+    }
+
+
+}
diff --git a/src/main/java/ipos/project/Functionality/eventfilter/MsgRcvFilteringResult.java b/src/main/java/ipos/project/Functionality/eventfilter/MsgRcvFilteringResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..e934fddf468cf78728c01c539159044f681f3a50
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/eventfilter/MsgRcvFilteringResult.java
@@ -0,0 +1,18 @@
+package ipos.project.Functionality.eventfilter;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.MessageReceivedEvent;
+
+public class MsgRcvFilteringResult extends FilteringResult {
+
+    private MessageReceivedEvent messageReceivedEvent;
+
+    public MsgRcvFilteringResult(String monitoringTaskId, MessageReceivedEvent messageReceivedEvent, Boolean isBlocking) {
+        super(monitoringTaskId, isBlocking);
+        this.messageReceivedEvent = messageReceivedEvent;
+    }
+
+    public MessageReceivedEvent getMessageReceivedEvent() {
+        return messageReceivedEvent;
+    }
+
+}
diff --git a/src/main/java/ipos/project/Functionality/eventfilter/PositionFilteringResult.java b/src/main/java/ipos/project/Functionality/eventfilter/PositionFilteringResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..19b1baa9bb388df0415baf09bc69f7e7f3938cde
--- /dev/null
+++ b/src/main/java/ipos/project/Functionality/eventfilter/PositionFilteringResult.java
@@ -0,0 +1,34 @@
+package ipos.project.Functionality.eventfilter;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
+
+import java.util.List;
+
+public class PositionFilteringResult extends FilteringResult{
+
+    public PositionFilteringResult(String monitoringTaskId, PositionEvent posEvent, boolean isBlocking, List<String> matchingPositionConditionCells, List<String> allPositionConditionCells){
+        super(monitoringTaskId, isBlocking);
+        this.posEvent = posEvent;
+        this.matchingPositionConditionCells = matchingPositionConditionCells;
+        this.nonMatchingPositionConditionCells = allPositionConditionCells;
+        this.nonMatchingPositionConditionCells.removeAll(matchingPositionConditionCells);
+    }
+
+    private List<String> matchingPositionConditionCells;
+    private List<String> nonMatchingPositionConditionCells;
+
+
+    public PositionEvent getPosEvent() {
+        return posEvent;
+    }
+
+    private PositionEvent posEvent;
+
+    public List<String> getMatchingPositionConditionCellIds() {
+        return this.matchingPositionConditionCells;
+    }
+
+    public List<String> getNonMatchingPositionConditionCellIds(){
+        return this.nonMatchingPositionConditionCells;
+    }
+}
diff --git a/src/main/java/ipos/project/Functionality/eventfilter/TestEventFilter.java b/src/main/java/ipos/project/Functionality/eventfilter/TestEventFilter.java
index dbe5fcf89a7d63e76fb08b83589e1f446a342edd..53835c160195c1852a68f904d4f65678eccccfc7 100644
--- a/src/main/java/ipos/project/Functionality/eventfilter/TestEventFilter.java
+++ b/src/main/java/ipos/project/Functionality/eventfilter/TestEventFilter.java
@@ -1,5 +1,7 @@
 package ipos.project.Functionality.eventfilter;
 
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
 import ipos.project.Functionality.eventfilter.*;
 import ipos.project.DataModellntegration.iPos_Datamodel.*;
 import org.springframework.stereotype.Component;
@@ -15,17 +17,26 @@ import java.util.HashMap;
 public class TestEventFilter {
     public static void test() throws ParseException {
         IPos_DatamodelFactory datamodelFactory = IPos_DatamodelFactory.eINSTANCE;
+        IPosDevKitFactory devKitFactory = IPosDevKitFactory.eINSTANCE;
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
         //HashMap events = new HashMap<String, String>();
         PositionEvent testPositionEvent = datamodelFactory.createPositionEvent();
         Placing testPlacing = datamodelFactory.createPlacing();
         LocalizableObject testLObject = datamodelFactory.createLocalizableObject();
-        PositionSensor testPSensor = datamodelFactory.createPositionSensor();
-        RelativePosition testPosition = datamodelFactory.createRelativePosition();
+        testLObject.setSensorType("UWB");
+        testLObject.setId("AGV001");
+        Agent testAgent = datamodelFactory.createAgent();
+        testAgent.setAgentType("AGV");
+        testAgent.getLObject().add(testLObject);
+        testAgent.setId("testAgent-Id");
+        testLObject.setAgent(testAgent);
+        Position testPosition = datamodelFactory.createPosition();
         Point3D testPoint3D = datamodelFactory.createPoint3D();
 
-        eventFilter filter = new eventFilter();
+        MonitoringRequest monReq = devKitFactory.createMonitoringRequest();
+        monReq.setMonitoringTaskId("testMonitoringTaskId");
+        eventFilter filter = new eventFilter(monReq);
         EventFilterCondition config = datamodelFactory.createEventFilterCondition();
         String jsonPath = System.getProperty("user.dir") + "\\src\\main\\java\\ipos\\project\\Functionality\\eventfilter\\configExample.json"; //assign your JSON file here
 		
@@ -49,16 +60,12 @@ public class TestEventFilter {
         events.put(tagNames.tagY,"2.456");
         events.put(tagNames.tagZ, "1");
         events.put(tagNames.tagAccuracy,"0.15"); */
-        testPoint3D.setX((float) 1.34);
-        testPoint3D.setY((float) 2.456);
-        testPoint3D.setZ((float) 1);
+        testPoint3D.setX((float) 3.34);
+        testPoint3D.setY((float) 2.656);
+        testPoint3D.setZ((float) 2);
         testPosition.setPoint(testPoint3D);
         testPlacing.setPosition(testPosition);
         testLObject.setId("AGV001");
-        testLObject.setType("AGV");
-        testPSensor.setType("UWB");
-        testLObject.setPSensor(testPSensor);
-        testPlacing.setLObject(testLObject);
         testPositionEvent.setTimeStamp("2021-07-05 14:09:03.591");
         testPositionEvent.setPlacing(testPlacing);
         System.out.println("Filter result " + ": " + filter.process(testPositionEvent));
diff --git a/src/main/java/ipos/project/Functionality/eventfilter/eventFilter.java b/src/main/java/ipos/project/Functionality/eventfilter/eventFilter.java
index 05b35890ab6b84bf38f86422890ba272a7ed1b22..34f957bf4e9a8dbcd860fe1a7256e0b77944a31f 100644
--- a/src/main/java/ipos/project/Functionality/eventfilter/eventFilter.java
+++ b/src/main/java/ipos/project/Functionality/eventfilter/eventFilter.java
@@ -1,29 +1,58 @@
 package ipos.project.Functionality.eventfilter;
 
-import ipos.project.Functionality.eventfilter.Cell.Quaternion;
-import ipos.project.Functionality.eventfilter.Cell.Vector3;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+import ipos.project.Functionality.DataServices;
 import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.UseCaseController.PositionMonitoring;
+import org.apache.logging.log4j.LogManager;
 
 import java.sql.Timestamp;
+import java.lang.Math;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 
 public class eventFilter {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    public static final String MONREQ_DISTANCE_PROPERTY = "distance";
+    public static final String MONREQ_VDA5050_PROPERTY = "VDA5050";
+    public static final List<String> MONREQ_ALLOWED_PROPERTIES = Arrays.asList("position", "id", "type", MONREQ_DISTANCE_PROPERTY, MONREQ_VDA5050_PROPERTY);
+
     private boolean[] filterStructure;
     //
     private PositionEvent last_position_event;
+    private MonitoringRequest monitoringRequest;
 
-    {
+    public eventFilter(MonitoringRequest monitoringRequest){
+        this.monitoringRequest = monitoringRequest;
         filterStructure = new boolean[9];
     }
 
+    public String getMonitoringTaskId(){
+        return this.monitoringRequest.getMonitoringTaskId();
+    }
+
+    public String getSerializationType(){
+        return this.monitoringRequest.getSerializationType();
+    }
+
+    public String getRefSystemId(){
+        return this.monitoringRequest.getRefSystemId();
+    }
+
+    private String getFusionStrategy(){
+        return this.monitoringRequest.getFusionStrategy();
+    }
+
     //Conditions: unique conditions are defined as single values, Parallel conditions are defined in lists.
     //initial value: 0 (for float and int) and empty (for arrays), it's not always possible to determine the status of the filter with just the condition value, so a filterStructure is defined to register which conditions are active.
 
+    public EventFilterCondition getFilterConditionConfig() {
+        return filterConditionConfig;
+    }
+
     private ArrayList<String[]> timeCondition;
     private List<String> categoryCondition;
     private List<String> sensorIdCondition;
@@ -32,7 +61,9 @@ public class eventFilter {
     private ArrayList<Float[]> positionCondition;
     private int timeMinInterval;
     private float positionDelta;
-    private ArrayList<Float[][]> positionConditionCell;
+    private Map<String, ArrayList<Float[][]>> positionConditionCells; // zoneId -> PositionConditionCell
+    private EventFilterCondition filterConditionConfig;
+    private List<String> propertyCondition;
 
     public void init(EventFilterCondition conf) {
         filterStructure = conf.getFilterStructure();
@@ -44,7 +75,9 @@ public class eventFilter {
         positionCondition = conf.getPositionCondition();
         timeMinInterval = conf.getTimeMinInterval();
         positionDelta = conf.getPositionDelta();
-        positionConditionCell = conf.getPositionConditionCell();
+        positionConditionCells = conf.getPositionConditionCells();
+        propertyCondition = conf.getPropertyCondition();
+        this.filterConditionConfig = conf;
     }
 
     private static String createRegexFromGlob(String glob) {
@@ -70,20 +103,71 @@ public class eventFilter {
         return (float) Math.hypot(Math.hypot(dx, dy), dz);
     }
 
-    private static boolean is_in_cell(Vector3 cod, Vector3 ref, Vector3 size, Quaternion rot){
-        cod.sub(ref);
-        rot.toMatrix();
-        return true;
+    private static boolean is_in_cell(Point3D cod, Float[] ref, Float[] size, Float[] rot){
+        if ((Math.abs(cod.getX()-ref[0])<= size[0]/2) && (Math.abs(cod.getY()-ref[1])<= size[1]/2) && (Math.abs(cod.getZ()-ref[2])<= size[2]/2)) {
+            return true;
+        }
+        else {
+            return false;
+        }
+    }
+
+    public BeaconFilteringResult processRawdata(Beacon beaconRawdataEvent){
+        LocalizableObject lObject = DataServices.getLObjectByIdOrNull(beaconRawdataEvent.getSensorId());
+        if (null == lObject){
+            LOG.info("EventFilter: Warning: Received beaconRawdataEvent from sensor with unknown sensor-id: " + beaconRawdataEvent.getSensorId());
+            return new BeaconFilteringResult(getMonitoringTaskId(), beaconRawdataEvent, true);
+        }
+
+        if (null == propertyCondition){
+            // assumption: default value of property is 'position' and not 'distance' or any other rawdata.
+            // so we will not publish rawdata if property-field is unset
+            return new BeaconFilteringResult(getMonitoringTaskId(), beaconRawdataEvent, true);
+        }
+
+        boolean isBlocking = false; //false for pass, true for block
+        if (sensorIdCondition != null){
+            String rawdataSensorId = beaconRawdataEvent.getSensorId();
+            if (!sensorIdCondition.contains(rawdataSensorId)){
+                isBlocking = true; // important: once true, isBlocking must not be switched to false again, i.e., once blocked dont unblock anymore
+            }
+        }
+
+        // rawdata-filter should block, if something other than rawdata is requested.
+        // for case propertyCondition == null: see above
+        if (propertyCondition != null){
+            // currently we only accept 'distance' as a keyword to indicate the request for publishing rawdata
+            if (! propertyCondition.contains(MONREQ_DISTANCE_PROPERTY)){
+                return new BeaconFilteringResult(getMonitoringTaskId(), beaconRawdataEvent, true);
+            }
+        }
+        return new BeaconFilteringResult(getMonitoringTaskId(), beaconRawdataEvent, isBlocking);
     }
 
-    public boolean process(PositionEvent event) throws ParseException {
+    public PositionFilteringResult process(PositionEvent event) throws ParseException {
         IPos_DatamodelFactory dataModelFactory = IPos_DatamodelFactory.eINSTANCE;
+        LocalizableObject lObject = DataServices.getLObjectByIdOrNull(event.getLObjectId());
         boolean flag = false; //false for pass, true for block
-        System.out.println("Filter structure: " + filterStructure[0] + ", " + filterStructure[1] + ", " + filterStructure[2] + ", " + filterStructure[3] + ", " + filterStructure[4] + ", " + filterStructure[5] + ", " + filterStructure[6] + ", " + filterStructure[7]);
+        List<String> matchingCells = new LinkedList<>();
+        if (null == event.getPlacing() || null == event.getPlacing().getPosition() || null == event.getPlacing().getPosition().getPoint()){
+            LOG.info("EventFilter: Warning: Received event with unknown Position. Sensor-id: " + event.getLObjectId());
+            return new PositionFilteringResult(getMonitoringTaskId(), event,true, matchingCells, new ArrayList<>(this.positionConditionCells.keySet()));
+        }
+        if (null == lObject){
+            LOG.info("EventFilter: Warning: Received event from sensor with unknown sensor-id: " + event.getLObjectId());
+            return new PositionFilteringResult(getMonitoringTaskId(), event,true, matchingCells, new ArrayList<>(this.positionConditionCells.keySet()));
+        }
+        Agent agent = lObject.getAgent();
+        if (null == agent){
+            LOG.info("EventFilter: Warning: Received event for sensor-id with unknown agent. Sensor-id: " + lObject.getId());
+            return new PositionFilteringResult(getMonitoringTaskId(), event,true, matchingCells, new ArrayList<>(this.positionConditionCells.keySet()));
+        }
+
+        LOG.info("Eventfilter: Filter structure: " + filterStructure[0] + ", " + filterStructure[1] + ", " + filterStructure[2] + ", " + filterStructure[3] + ", " + filterStructure[4] + ", " + filterStructure[5] + ", " + filterStructure[6] + ", " + filterStructure[7]);
         //filter time conditions
         if (filterStructure[0]) {
             flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
-            System.out.println("Time condition: " + timeCondition);
+            LOG.info("Eventfilter: Time condition: " + timeCondition);
             for (int i = 0; i < timeCondition.size(); i++) {
                 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
                 Date date = formatter.parse(event.getTimeStamp());
@@ -93,7 +177,7 @@ public class eventFilter {
                 Timestamp lower_ts = new Timestamp(lower_date.getTime());
                 Timestamp upper_ts = new Timestamp(upper_date.getTime());
 
-                System.out.println("Time in event" + ": " + date);
+                LOG.info("Eventfilter: Time in event" + ": " + date);
 
                 if (lower_ts.equals(upper_ts) || ts.equals(lower_ts)) {
                     flag = false;
@@ -105,48 +189,50 @@ public class eventFilter {
                 }
             }
         }
-        System.out.println("Filter status (Time) " + ": " + flag);
+        LOG.info("Eventfilter: Filter status (Time) " + ": " + flag);
         //filter category conditions
         if (filterStructure[1] && !flag) {
             flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
             for (int i = 0; i < categoryCondition.size(); i++) {
-                System.out.println("Type in event: " + event.getPlacing().getLObject().getType());
-                if (event.getPlacing().getLObject().getType().equals(categoryCondition.get(i))) {
+                LOG.info("Eventfilter: Type in event: " + agent.getAgentType());
+
+                if (agent.getAgentType().equals(categoryCondition.get(i))) {
                     flag = false;
                     break;
                 }
             }
         }
-        System.out.println("Filter status (category) " + ": " + flag);
+        LOG.info("Eventfilter: Filter status (category) " + ": " + flag);
         //filter id conditions
         if (filterStructure[2] && !flag) {
             flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
             for (int i = 0; i < idCondition.size(); i++) {
-                if (event.getPlacing().getLObject().getId().matches(idCondition.get(i))) {
+                if (lObject.getId().matches(idCondition.get(i))) {
                     flag = false;
                     break;
                 }
             }
         }
-        System.out.println("Filter status (id) " + ": " + flag);
+        LOG.info("Eventfilter: Filter status (id) " + ": " + flag);
         //filter sensor_id conditions
         if (filterStructure[3] && !flag) {
             flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
             for (int i = 0; i < sensorIdCondition.size(); i++) {
                 String patternString = createRegexFromGlob(sensorIdCondition.get(i));
-                if (event.getPlacing().getLObject().getPSensor().getType().matches(patternString)) {
+                // TODO: Does this really work?
+                if (lObject.getSensorType().matches(patternString)) {
                     flag = false;
                     break;
                 }
             }
         }
-        System.out.println("Filter status (sensor_id) " + ": " + flag);
+        LOG.info("Eventfilter: Filter status (sensor_id) " + ": " + flag);
 
         //filter accuracy condition
         if (filterStructure[4] && !flag) {
             flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
-            //System.out.println("Accuracy condition: " + accuracyCondition);
-            //System.out.println("Accuracy event: " + event.getPositionInfo().getPosition().getAccuracy());
+            //LOG.info("Eventfilter: Accuracy condition: " + accuracyCondition);
+            //LOG.info("Eventfilter: Accuracy event: " + event.getPositionInfo().getPosition().getAccuracy());
             if (event.getPlacing().getPosition().getAccuracy() instanceof Gaussian) {
                 Gaussian gAccuracy = (Gaussian) event.getPlacing().getPosition().getAccuracy();
                 if (gAccuracy.getConfidenceInterval() <= accuracyCondition) {
@@ -154,30 +240,28 @@ public class eventFilter {
                 }
             }
         }
-        System.out.println("Filter status (accuracy) " + ": " + flag);
+        LOG.info("Eventfilter: Filter status (accuracy) " + ": " + flag);
 
 
         //filter position conditions
         if (filterStructure[5] && !flag) {
             flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
-            if (event.getPlacing().getPosition() instanceof RelativePosition) {
-                RelativePosition rPosition = (RelativePosition) event.getPlacing().getPosition();
-                if (rPosition.getPoint() instanceof Point3D) {
-                    Point3D cod2 = dataModelFactory.createPoint3D();
-                    for(int    i=0;    i<sensorIdCondition.size();    i++){
-                        Point3D cod1 = dataModelFactory.createPoint3D();
-                        cod1.setX(positionCondition.get(i)[0]);
-                        cod1.setY(positionCondition.get(i)[1]);
-                        cod1.setZ(positionCondition.get(i)[2]);
-                        if (cal_distance(cod1, cod2)<=positionCondition.get(i)[3]){
-                            flag = false;
-                            break;
-                        }
+            Position position = event.getPlacing().getPosition();
+            if (position.getPoint() instanceof Point3D) {
+                Point3D cod2 = dataModelFactory.createPoint3D();
+                for(int    i=0;    i<sensorIdCondition.size();    i++){
+                    Point3D cod1 = dataModelFactory.createPoint3D();
+                    cod1.setX(positionCondition.get(i)[0]);
+                    cod1.setY(positionCondition.get(i)[1]);
+                    cod1.setZ(positionCondition.get(i)[2]);
+                    if (cal_distance(cod1, cod2)<=positionCondition.get(i)[3]){
+                        flag = false;
+                        break;
                     }
                 }
             }
         }
-        System.out.println("Filter status (position) " + ": " + flag);
+        LOG.info("Eventfilter: Filter status (position) " + ": " + flag);
         //filter time_min_interval condition
         if (filterStructure[6] && !flag && last_position_event !=null) {
             flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
@@ -187,53 +271,79 @@ public class eventFilter {
             Date last_date = formatter.parse(last_position_event.getTimeStamp());
             Timestamp last_ts = new Timestamp(last_date.getTime());
             long interval = date.getTime() - last_date.getTime();
-            //System.out.println("Time stamp" + ": " + ts);
-            //System.out.println("Interval" + ": " + interval);
+            //LOG.info("Eventfilter: Time stamp" + ": " + ts);
+            //LOG.info("Eventfilter: Interval" + ": " + interval);
             if (interval >= timeMinInterval) {
                 flag = false;
             }
         }
-        System.out.println("Filter status (time_min_interval) " + ": " + flag);
+        LOG.info("Eventfilter: Filter status (time_min_interval) " + ": " + flag);
 
         //filter position_delta condition
         if (filterStructure[7] && !flag && last_position_event !=null) {
             flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
-            if (event.getPlacing().getPosition() instanceof RelativePosition) {
-                RelativePosition rPosition1 = (RelativePosition) event.getPlacing().getPosition();
-                RelativePosition rPosition2 = (RelativePosition) last_position_event.getPlacing().getPosition();
-                if (rPosition1.getPoint() instanceof Point3D) {
-                    Point3D cod1 = (Point3D) rPosition1.getPoint();
-                    Point3D cod2 = (Point3D) rPosition2.getPoint();
-                    float distance = cal_distance(cod1, cod2);
-
-                    System.out.println("Distance: " + distance);
-                    if (distance >= positionDelta) {
-                        flag = false;
-                    }
+            Position position1 = event.getPlacing().getPosition();
+            Position position2 = last_position_event.getPlacing().getPosition();
+            if (position1.getPoint() instanceof Point3D) {
+                Point3D cod1 = (Point3D) position1.getPoint();
+                Point3D cod2 = (Point3D) position2.getPoint();
+                float distance = cal_distance(cod1, cod2);
+
+                LOG.info("Eventfilter: Distance: " + distance);
+                if (distance >= positionDelta) {
+                    flag = false;
                 }
             }
+
         }
-        System.out.println("Filter status (position_delta) " + ": " + flag);
+        LOG.info("Eventfilter: Filter status (position_delta) " + ": " + flag);
 
         //filter positionCondition_cell condition
-        /*if (filterStructure[8] && !flag) {
+        if (filterStructure[8] && !flag) {
             flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
-            Vector3 cod = new Vector3(Double.parseDouble(event.getPositionInfo().getPosition().getCoordinate().getX()),Double.parseDouble(event.getPositionInfo().getPosition().getCoordinate().getY()),Double.parseDouble(event.getPositionInfo().getPosition().getCoordinate().getZ()));
-            for (int i = 0; i < positionCondition_cell.size(); i++) {
-                Vector3 ref = new Vector3(positionCondition_cell.get(i)[0][0], positionCondition_cell.get(i)[0][1], positionCondition_cell.get(i)[0][2]);
-                Vector3 size = new Vector3(positionCondition_cell.get(i)[1][0], positionCondition_cell.get(i)[1][1], positionCondition_cell.get(i)[1][2]);
-                Quaternion rot = new Quaternion(positionCondition_cell.get(i)[2][0], positionCondition_cell.get(i)[2][1], positionCondition_cell.get(i)[2][2], positionCondition_cell.get(i)[2][3]);
-                if (is_in_cell(cod, ref, size, rot)) {
+            Position position = event.getPlacing().getPosition();
+            for (Map.Entry<String, ArrayList<Float[][]>> identifiedCell : positionConditionCells.entrySet()){
+                boolean evalResult = evaluatePositionConditionCell(position, identifiedCell.getValue());
+                if (!evalResult){ // let the event pass if filter is not blocking for at least one cell
                     flag = false;
+                    matchingCells.add(identifiedCell.getKey());
                 }
             }
         }
-        System.out.println("Filter status (positionCondition_cell) " + ": " + flag);*/
-
+        LOG.info("Eventfilter: Filter status (positionCondition_cell) " + ": " + flag);
+        LOG.info("Eventfilter: EventFilter " + getMonitoringTaskId() + " accepted zones " + matchingCells.toString());
+        LOG.info("INDFRO-DEBUG: EventFilter " + getMonitoringTaskId() + " accepted zones " + matchingCells.toString());
 
         if (!flag) {
             last_position_event = event;
         }
-        return flag;
+        PositionFilteringResult positionFilteringResult = new PositionFilteringResult(getMonitoringTaskId(), event, flag, matchingCells, new ArrayList<>(this.positionConditionCells.keySet()));
+        return positionFilteringResult;
+    }
+
+    private boolean evaluatePositionConditionCell(Position position, ArrayList<Float[][]> positionConditionCell) {
+        boolean result = true;
+        for (int i = 0; i < positionConditionCell.size(); i++) {
+            if (position.getPoint() instanceof Point3D) {
+                Point3D cod = (Point3D) position.getPoint();
+                if (is_in_cell(cod, positionConditionCell.get(i)[0], positionConditionCell.get(i)[1], positionConditionCell.get(i)[2])) {
+                    result = false;
+                }
+            }
+        }
+        return result;
+    }
+
+    public boolean respectsAccuracySdfForPosEvent(PositionEvent posEvent) {
+        return (true || PositionMonitoring.ACCURACY_FUSION_STRATEGY.equals(this.getFusionStrategy())); // sensor data fusion is currently switched on by default, but later it may depend on agent-id
+    }
+
+    public MsgRcvFilteringResult processMessageReceivedEvent(MessageReceivedEvent messageReceivedEvent) {
+        boolean isVDA5050Message = MONREQ_VDA5050_PROPERTY.equals(messageReceivedEvent.getProtocolName());
+        boolean eFilterIsAcceptingVDA5050Message = propertyCondition.contains(MONREQ_VDA5050_PROPERTY);
+        boolean isAccepting = isVDA5050Message && eFilterIsAcceptingVDA5050Message;
+        boolean isBlocking =  !isAccepting;
+        MsgRcvFilteringResult msgRcvFilteringResult = new MsgRcvFilteringResult(this.getMonitoringTaskId(), messageReceivedEvent, isBlocking);
+        return msgRcvFilteringResult;
     }
 }
diff --git a/src/main/java/ipos/project/Functionality/eventfilter/readConfig.java b/src/main/java/ipos/project/Functionality/eventfilter/readConfig.java
index b32f9dee9e2c5de76c5a017935b8d85493f44759..f009bf0684b11415d32d1ee7103ca589dbb5b9b1 100644
--- a/src/main/java/ipos/project/Functionality/eventfilter/readConfig.java
+++ b/src/main/java/ipos/project/Functionality/eventfilter/readConfig.java
@@ -1,5 +1,8 @@
 package ipos.project.Functionality.eventfilter;
-import ipos.project.DataModellntegration.iPos_Datamodel.EventFilterCondition;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+import ipos.project.Functionality.DataServices;
+import org.apache.logging.log4j.LogManager;
 import org.json.JSONArray;
 import org.json.JSONObject;
 
@@ -9,6 +12,78 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class readConfig {
+
+    // kommt später raus, Zugriff auf Weltmodell erfolgt eigentlich über Komponente DataRetrieval
+    // private static WorldModel wm;
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    /**
+     * Returns false if MonitoringRequest could not be read successfully.
+     * @param monReq
+     * @param config
+     * @return
+     */
+    public static boolean readFilterConfigFromMonitoringRequest (MonitoringRequest monReq, EventFilterCondition config){
+        // TODO: support other criteria than "position_condition_cell"
+        config.setFilterStructure(new boolean[] {false, false, false, false, false, false, false, false, true});
+        for (String frameId : monReq.getFrameIds()){
+            Zone zone_monReq = DataServices.getZoneByIdOrNull(frameId);
+            if (null == zone_monReq){
+                LOG.warn("MonitoringRequest contained an invalid Zone-id: " + frameId);
+                return false;
+            }
+            ArrayList<Float[][]> positionConditionCell = transformZone2PositionConditionCell(zone_monReq);
+            config.getPositionConditionCells().put(frameId, positionConditionCell);
+        }
+
+        try {
+            monReq.getId().forEach(sensorId -> addSensorIdToFilterConfig(sensorId, config));
+        }catch (RuntimeException e){
+            LOG.warn(e.getMessage());
+            return false;
+        }
+
+        try {
+            monReq.getProperties().forEach(property -> addPropertyToFilterConfig(property, config));
+        }catch (RuntimeException e){
+            LOG.warn(e.getMessage());
+            return false;
+        }
+
+        return true;
+    }
+
+    private static void addPropertyToFilterConfig(String property, EventFilterCondition config) {
+        if (eventFilter.MONREQ_ALLOWED_PROPERTIES.contains(property)){
+            config.getPropertyCondition().add(property);
+        }else{
+            throw new RuntimeException("MonitoringRequest contained an invalid property: " + property);
+        }
+    }
+
+    private static void addSensorIdToFilterConfig(String sensorId, EventFilterCondition config) {
+        LocalizableObject lObject = DataServices.getLObjectByIdOrNull(sensorId);
+        if (null == lObject){
+            throw new RuntimeException("MonitoringRequest contained an invalid sensor-id: " + sensorId);
+        }
+        config.getSensorIdCondition().add(sensorId);
+    }
+
+    public static ArrayList<Float[][]> transformZone2PositionConditionCell(Zone zone) {
+        // TODO: support Point-Types other than Point3D
+        ArrayList<Float[][]> position_condition_cell = new ArrayList<>();
+        for (var space : zone.getSpace()) {
+            Float[][] cell_c = new Float[3][4]; // first dimension selects: Position, Space, Quaternion; second dimension selects: x,y,z,w
+            Point3D centrePoint = (Point3D) space.getCentrePoint().getPosition().getPoint();
+            Quaternion orientation = (Quaternion) space.getCentrePoint().getOrientation();
+            cell_c[0] = new Float[]{centrePoint.getX(), centrePoint.getY(), centrePoint.getZ()};
+            cell_c[1] = new Float[]{space.getX(), space.getY(), space.getZ()};
+            cell_c[2] = new Float[]{orientation.getX(), orientation.getY(), orientation.getZ(), orientation.getW()};
+            position_condition_cell.add(cell_c);
+        }
+        return position_condition_cell;
+    }
+
     public static void readFilterConfigFromJson (String json_file, EventFilterCondition config) throws Exception {
 
         //Time condition: One time condition consist of two timestamp in format "yyyy-MM-dd HH:mm:ss.SSS", if the timestamp of the position event falls in between, the event passes.
@@ -232,7 +307,7 @@ public class readConfig {
                 position_condition_cell.add(cell_c);
             }
             filter_structure[8] = true;
-            config.setPositionConditionCell(position_condition_cell);
+            config.getPositionConditionCells().put("DefaultZoneId", position_condition_cell);
         }
         else {
             filter_structure[8]=false;
@@ -261,8 +336,9 @@ public class readConfig {
         System.out.println("\tsensor_id_condition          : " + config.getSensorIdCondition());
         System.out.println("\tid_condition                 : " + config.getIdCondition());
         System.out.println("\taccuracy_condition           : " + config.getAccuracyCondition());
-        System.out.println("\tposition_condition           : " + config.getPositionCondition().get(0)[0] + ", " + config.getPositionCondition().get(0)[1] + ", " + config.getPositionCondition().get(0)[2] + ", " + config.getPositionCondition().get(0)[3]);
+        //System.out.println("\tposition_condition           : " + config.getPositionCondition().get(0)[0] + ", " + config.getPositionCondition().get(0)[1] + ", " + config.getPositionCondition().get(0)[2] + ", " + config.getPositionCondition().get(0)[3]);
         System.out.println("\ttime_min_interval            : " + config.getTimeMinInterval());
         System.out.println("\tposition_delta               : " + config.getPositionDelta());
+        System.out.println("\tfilter_structure             : " + config.getFilterStructure());
     }
 }
diff --git a/src/main/java/ipos/project/MainApp.java b/src/main/java/ipos/project/MainApp.java
index 2e431c612ae526353b3ceab7651f6ddeea2205c0..afc4e06806beac18915cf318692c2b2038a71099 100644
--- a/src/main/java/ipos/project/MainApp.java
+++ b/src/main/java/ipos/project/MainApp.java
@@ -1,19 +1,143 @@
 package ipos.project;
 
-import ipos.project.Functionality.eventfilter.TestEventFilter;
+import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneIntegration;
+import ipos.project.DataModellntegration.VDA5050Processor.VDA5050Processor;
+import ipos.project.SensorValueIntegration.GenericSensorValueProcessor;
+import ipos.project.iposextension.orderpicker.OFBizOrderPicker;
+import ipos.project.iposextension.osm.OSM;
+import ipos.project.iposextension.tooz.Tooz;
+import org.apache.logging.log4j.LogManager;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.context.annotation.ComponentScan;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 
-import java.text.ParseException;
+import java.util.Scanner;
 
 @SpringBootApplication
-@EnableJpaRepositories("ipos.project.models.SimpleScene.*")
+// @EnableJpaRepositories("ipos.project.models.SimpleScene.*")
+@EnableJpaRepositories("ipos.project.DataModellntegration.iPos_Datamodel.impl")
 public class MainApp {
-	public static void main(String[] args) throws ParseException {
-		TestEventFilter.test();
-		SpringApplication.run(MainApp.class, args);
-	}
+    public static boolean READY_TO_READ_NEXT_LINE = true; // reading the first line shall not require user actions
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    // public static final String TESTRAWDATA_FILE = "./testdata_raw.txt";
+    // public static final String TESTDATA_EMPTY = "./testdata_raw_empty.txt";
+    public static final String INDUSTRIEROBOTIK_FILE = "./init_Industrierobotik.txt";
+    public static final String SENSORDATENFUSION_FILE = "./init_Sensordatenfusion.txt";
+    public static final String ORDERPICKER_FILE = "./init_Orderpicker.txt";
+    public static final String TESTDATA_INDFRO = "./testdata_raw_indfro.txt";
+    public static final String TESTDATA_QUERY = "./testdata_raw_query.txt";
+    public static final String TESTDATA_OP = "./testdata_raw_orderpicker.txt";
+    public static final String TESTDATA_OP_EVTS = "testdata_raw_orderpicker_posEvts.txt";
+    public static final String TESTDATA_SDF = "testdata_raw_sdf.txt";
+    public static final String TESTDATA_TOOZ = "testdata_raw_tooz.txt";
+    public static final String TESTDATA_TOOZ_MONTARGET = "testdata_raw_tooz_init.txt";
+    public static final String TESTDATA_OSM_MONTARGET = "testdata_raw_osm_init.txt";
+    public static final String TESTDATA_VDA5050 = "testdata_raw_vda5050.txt";
+    public static final String COMMAND_INDFRO = "indfro testdata"; // Industrierobotik_Frontend
+    public static final String COMMAND_OP = "oppl testdata";
+    public static final String COMMAND_OP_EVTS = "opevts testdata";
+    public static final String COMMAND_SDF = "sdf testdata";
+    public static final String COMMAND_TOOZ_TARGET = "tooz setLocalAgent";
+    public static final String COMMAND_TOOZ = "tooz testdata";
+    public static final String COMMAND_VDA5050 = "testdata VDA5050";
+    public static final String COMMAND_EXIT = "exit";
+    public static final String COMMAND_HELP = "help";
+    public static final String COMMAND_QUERY = "query";
+    public static final String COMMAND_INIT_INDFRO = "init indfro";
+    public static final String COMMAND_INIT_SDF = "init sdf";
+    public static final String COMMAND_INIT_OP = "init op";
+    public static final String COMMAND_INIT_OSM = "init osm";
+    public static final String COMMAND_READY_FOR_NEXT_LINE = "next line";
+    public static final String UNKNOWN_COMMAND = "SHELL: Unknown command";
+    private static boolean proceed = true;
+
+    public static void main(String[] args){
+        SpringApplication.run(MainApp.class, args);
+        printCommands();
+        processCommands();
+    }
+
+    private static void processCommands() {
+        Scanner scanner = new Scanner(System.in);
+        while(proceed) {
+             if(scanner.hasNext()) {
+                String line = scanner.nextLine();
+                switch(line){
+                    case COMMAND_INIT_INDFRO: initIndfro(); break;
+                    case COMMAND_INIT_SDF: initSdf(); break;
+                    case COMMAND_INIT_OP: initOp(); break;
+                    case COMMAND_INIT_OSM: initOSM(TESTDATA_OSM_MONTARGET); break;
+                    case COMMAND_EXIT : proceed = false; break;
+                    case COMMAND_HELP: printCommands(); break;
+                    case COMMAND_INDFRO: GenericSensorValueProcessor.processTestData(TESTDATA_INDFRO); break;
+                    case COMMAND_TOOZ_TARGET: Tooz.processMonTargetTestdata(TESTDATA_TOOZ_MONTARGET); break;
+                    case COMMAND_VDA5050: VDA5050Processor.processTestData(TESTDATA_VDA5050); break;
+                    case COMMAND_TOOZ: GenericSensorValueProcessor.processTestData(TESTDATA_TOOZ); break;
+                    case COMMAND_SDF: GenericSensorValueProcessor.processTestData(TESTDATA_SDF); break;
+                    case COMMAND_OP : OFBizOrderPicker.processPicklistTestData(TESTDATA_OP); break;
+                    case COMMAND_OP_EVTS: OFBizOrderPicker.processPosEvtTestData(TESTDATA_OP_EVTS); break;
+                    case COMMAND_QUERY : SimpleSceneIntegration.handleMessageFile(TESTDATA_QUERY); break;
+                    default: LOG.info(UNKNOWN_COMMAND); break;
+                }
+            }
+        }
+    }
+
+    private static void initOSM(String testdataOsmMontarget) {
+        OSM.processTestData(testdataOsmMontarget);
+    }
+
+    private static void initIndfro() {
+        ipos.project.SensorValueIntegration.api.MqttPositionHandler.setInitialized(false);
+        SimpleSceneIntegration.init(INDUSTRIEROBOTIK_FILE);
+        ipos.project.SensorValueIntegration.api.MqttPositionHandler.setInitialized(true);
+    }
+
+    private static void initSdf() {
+        ipos.project.SensorValueIntegration.api.MqttPositionHandler.setInitialized(false);
+        SimpleSceneIntegration.init(SENSORDATENFUSION_FILE);
+        ipos.project.SensorValueIntegration.api.MqttPositionHandler.setInitialized(true);
+    }
+
+    /**
+     * IPos-Framework is initialized with data that is suitable for testing the "OrderPicker"-usecase
+     * This initialization data is contained in configuration file ORDERPICKER_FILE.
+     * OrderPicker extension is initialized (OFBizOrderPicker.initialize()).
+     * After initialization the "OrderPicker extension" should be updated by the IPos-FW with all relevant positions
+     */
+    private static void initOp() {
+        ipos.project.SensorValueIntegration.api.MqttPositionHandler.setInitialized(false);
+        SimpleSceneIntegration.init(ORDERPICKER_FILE);
+        ipos.project.SensorValueIntegration.api.MqttPositionHandler.setInitialized(true);
+        OFBizOrderPicker.initialize();
+    }
+
+    private static void printCommands() {
+        LOG.info("SHELL:-------------------------------------");
+        LOG.info("SHELL:Available commands: ");
+        LOG.info("SHELL:---------");
+        LOG.info("SHELL:Initialization: ");
+        LOG.info("SHELL:---------");
+        LOG.info("SHELL:" + COMMAND_INIT_INDFRO);
+        LOG.info("SHELL:" + COMMAND_INIT_SDF);
+        LOG.info("SHELL:" + COMMAND_INIT_OP);
+        LOG.info("SHELL:---------");
+        LOG.info("SHELL:Testdata:");
+        LOG.info("SHELL:---------");
+        LOG.info("SHELL:" + COMMAND_INDFRO);
+        LOG.info("SHELL:" + COMMAND_SDF);
+        LOG.info("SHELL:" + COMMAND_OP);
+        LOG.info("SHELL:" + COMMAND_OP_EVTS);
+        LOG.info("SHELL:" + COMMAND_QUERY);
+        LOG.info("SHELL:" + COMMAND_TOOZ);
+        LOG.info("SHELL:" + COMMAND_VDA5050);
+        LOG.info("SHELL:---------");
+        LOG.info("SHELL:Other:");
+        LOG.info("SHELL:---------");
+        LOG.info("SHELL:" + COMMAND_EXIT);
+        LOG.info("SHELL:" + COMMAND_HELP);
+        LOG.info("SHELL:-------------------------------------");
+    }
+
 }
diff --git a/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java b/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java
new file mode 100644
index 0000000000000000000000000000000000000000..6521457779b52175d6fb0a5310eef41f056cb19c
--- /dev/null
+++ b/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java
@@ -0,0 +1,106 @@
+package ipos.project.SensorValueIntegration;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.GenericSensor;
+import ipos.models.SimpleScene.IposPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.Beacon;
+import ipos.project.DataModellntegration.iPos_Datamodel.Bluetooth;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.UWB;
+import ipos.project.SensorValueIntegration.Service.GenericSensorTransformer;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.SensorValueIntegration.api.MqttPositionHandler;
+import ipos.project.devkit.utility.OtherUtility;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jms.annotation.JmsListener;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.util.Scanner;
+
+@Component
+public class GenericSensorValueProcessor {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    @Autowired
+    public GenericSensorValueProcessor(ExternalPubServiceImpl mqttService_){
+        mqttService = mqttService_;
+    }
+
+    // @Autowired
+    private static ExternalPubServiceImpl mqttService;
+
+    @JmsListener(destination = "/positions", containerFactory = "jmsListenFactory")
+    public void receiveMessage(IposPosition pos) {
+        LOG.trace("Data integration get: " + pos);
+        // we can translate a class into a string using several methods: 1) `.toString()` 2) `JsonFormat` in `ProtoJsonMap`
+        String jsonPos = ProtoJsonMap.toJson(pos);
+        if (jsonPos != null) {
+            this.mqttService.publish("test51/subscribe/positions", jsonPos, 0, false);
+        }
+    }
+
+    public static void processTestData(String path_to_test_data_file){
+        File testDataFile = new File(path_to_test_data_file);
+        Scanner scanner = new Scanner(System.in);
+        try {
+            for (String line : OtherUtility.readLines(testDataFile)) {
+                GenericSensor.SensorEventWrapper sensorEventWrapper = ProtoJsonMap.fromJson(line, GenericSensor.SensorEventWrapper.class);
+                OtherUtility.waitUntilUserRequestsReadingNextLine(scanner);
+                MqttPositionHandler.handleSensorEventWrapper(sensorEventWrapper);
+            }
+        }catch (InvalidProtocolBufferException e) {
+            LOG.error("Error trying to read JSON into protobuf-objects: ");
+            e.printStackTrace();
+        }
+    }
+
+    public static void receiveMessage(Beacon beaconRawdataEvent, String monitoringTaskId, String serializationType, String agentId, String agentType) {
+        if (beaconRawdataEvent instanceof UWB){
+            GenericSensorValueProcessor.receiveMessage((UWB) beaconRawdataEvent, monitoringTaskId, serializationType, agentId, agentType);
+        } else if(beaconRawdataEvent instanceof Bluetooth){
+            GenericSensorValueProcessor.receiveMessage((Bluetooth) beaconRawdataEvent, monitoringTaskId, serializationType, agentId, agentType);
+        } else{
+            LOG.error("Rawdata could not be forwarded as position sensor technology could not be determined.");
+        }
+    }
+
+    public static void receiveMessage(Bluetooth btRawdataEvent, String monitoringTaskId, String serializationType, String agentId, String agentType) {
+        IPosBTEvent iPosBTEvent_internal = GenericSensorTransformer.bt_internal2IPosRawdata(btRawdataEvent, agentId, agentType);
+        GenericSensor.IPosBTEvent iPosBTEvent_proto = GenericSensorTransformer.bt_IPosRawdata2proto(iPosBTEvent_internal);
+        GenericSensor.IPosRawdataEventWrapper iPosRawdataEventWrapper_proto = GenericSensorTransformer.bt_wrapIntoRawdataEventWrapper(iPosBTEvent_proto);
+        logging_tooz(iPosBTEvent_proto, monitoringTaskId, serializationType);
+        OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iPosRawdataEventWrapper_proto);
+    }
+
+    public static void receiveMessage(UWB beaconRawdataEvent, String monitoringTaskId, String serializationType, String agentId, String agentType) {
+        IPosUWBEvent iPosUWBEvent_internal = GenericSensorTransformer.uwb_internal2IPosRawdata(beaconRawdataEvent, agentId, agentType);
+        GenericSensor.IPosUWBEvent iPosUWBEvent_proto = GenericSensorTransformer.uwb_IPosRawdata2proto(iPosUWBEvent_internal);
+        GenericSensor.IPosRawdataEventWrapper iPosRawdataEventWrapper_proto = GenericSensorTransformer.uwb_wrapIntoRawdataEventWrapper(iPosUWBEvent_proto);
+        logging_tooz(iPosUWBEvent_proto, monitoringTaskId, serializationType);
+        OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iPosRawdataEventWrapper_proto);
+    }
+
+    private static void logging_tooz(com.google.protobuf.AbstractMessage event_proto, String monitoringTaskId, String serializationType) {
+        LOG.info("TOOZ: Publishing " + event_proto.getClass().getName() + " on topic " + monitoringTaskId + " with serialization type " + serializationType);
+        LOG.info("TOOZ: ");
+    }
+    /*
+    public static void publishRespectingSerializationType(String topic, String serializationType, String jsonString, MqttMessage mqttMessage) {
+        // publishes protobuf over MQTT
+        if (PositionMonitoring.PROTOBUF_SERIALIZATION_TYPE.equals(serializationType)){
+            mqttService.publish(topic, mqttMessage);
+            LOG.info("publishing protobuf mqttMessage. JSON-representation:" + jsonString + " on topic: " + topic);
+        }
+
+        // publishes JSON over MQTT
+        if (PositionMonitoring.JSON_SERIALIZATION_TYPE.equals(serializationType)){
+            mqttService.publish(topic, jsonString, 0, false);
+            LOG.info("publishing JSON mqttMessage:" + jsonString + " on topic: " + topic);
+        }
+    }*/
+
+}
diff --git a/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java b/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java
new file mode 100644
index 0000000000000000000000000000000000000000..49d027329b688dab1dd368578e95a82a3da48936
--- /dev/null
+++ b/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java
@@ -0,0 +1,202 @@
+package ipos.project.SensorValueIntegration.Service;
+
+import com.google.protobuf.ProtocolStringList;
+import ipos.models.GenericSensor;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory;
+import ipos.project.Functionality.DataServices;
+import ipos.project.devkit.trans.IPos2protoTransformer;
+
+
+import java.time.LocalDateTime;
+import java.util.*;
+
+public class GenericSensorTransformer {
+
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+    private static IPosDevKitFactory devKitFactory = IPosDevKitFactory.eINSTANCE;
+
+   private static List<String> toJavaStringList(ProtocolStringList protoList){
+        List<String> javaList = new ArrayList<String>();
+        for(int i = 0; i < protoList.size(); i++ ){
+            javaList.set(i, protoList.get(i));
+        }
+        return javaList;
+    }
+
+    public static SimpleScene.IposMonitoringRequest monReq_Internal2SScene(){
+        return null;
+    }
+
+    public static PositionEvent posEvent_GSensor2Internal(GenericSensor.SensorPositionEvent protoSensPosEvent) {
+        PositionEvent positionEvent = modelFactory.createPositionEvent();
+        positionEvent.setTimeStamp(protoSensPosEvent.getLastPosUpdate());
+        positionEvent.setLObjectId(protoSensPosEvent.getSensorId());
+
+        // TODO: Zugriff auf Weltmodell ermöglichen um Bezugssystem-Objekt beschaffen zu können
+        positionEvent.setPlacing(
+                IPos2protoTransformer.createPlacing(
+                        IPos2protoTransformer.createPosition(
+                                IPos2protoTransformer.createPoint3D(
+                                        protoSensPosEvent.getPosition().getPoint().getX(),
+                                        protoSensPosEvent.getPosition().getPoint().getY(),
+                                        protoSensPosEvent.getPosition().getPoint().getZ()
+                                ),
+                                protoSensPosEvent.getPosition().getAccuracy(),
+                                DataServices.getReferenceSystemByIdOrNull(protoSensPosEvent.getPosition().getRefSystemId())
+
+                        ),
+                        IPos2protoTransformer.createOrientation(
+                                protoSensPosEvent.getOrientation().getX(),
+                                protoSensPosEvent.getOrientation().getY(),
+                                protoSensPosEvent.getOrientation().getZ(),
+                                protoSensPosEvent.getOrientation().getW()
+                        )
+                ));
+        return positionEvent;
+    }
+
+    public static NFC nfc_GSensor2Internal(GenericSensor.NFCRawDataEvent proto_nfcRawdataEvent) {
+        NFC internal_nfcRawdataEvent = modelFactory.createNFC();
+        // internal_nfcRawdataEvent.setTimeStamp(proto_nfcRawdataEvent.getTimestamp());
+
+        // fake nfc-timestamp (queube could not provide millisecond-accuracy as it relies on time server)
+       internal_nfcRawdataEvent.setTimeStamp(LocalDateTime.now() + "+00:00"); // suffix necessary to be parsable by DateTimeFormatter.ISO_OFFSET_DATE_TIME
+       internal_nfcRawdataEvent.setTagId(proto_nfcRawdataEvent.getTagId());
+        internal_nfcRawdataEvent.setScannerId(proto_nfcRawdataEvent.getScannerId());
+        internal_nfcRawdataEvent.setType(proto_nfcRawdataEvent.getType());
+        internal_nfcRawdataEvent.setTagData(convertToStringToObjectMap(proto_nfcRawdataEvent.getTagDataMap()));
+        return internal_nfcRawdataEvent;
+   }
+
+    private static Map<String, Object> convertToStringToObjectMap(Map<String, String> inputMap) {
+        Map<String,Object> outputMap =new HashMap<String,Object>();
+        for (Map.Entry<String, String> entry : inputMap.entrySet()) {
+            if(entry.getValue() != null){
+                outputMap.put(entry.getKey(), (Object) entry.getValue());
+            }
+        }
+        return outputMap;
+    }
+
+    public static IMU imu_GSensor2Internal(GenericSensor.IMURawDataEvent proto_imuRawDataEvent) {
+       IMU internal_imuRawDataEvent = modelFactory.createIMU();
+       internal_imuRawDataEvent.setTimeStamp(proto_imuRawDataEvent.getTimestamp());
+       internal_imuRawDataEvent.setSensorId(proto_imuRawDataEvent.getSensorId());
+       Acceleration internal_acceleration = modelFactory.createAcceleration();
+       internal_acceleration.setX(proto_imuRawDataEvent.getX());
+       internal_acceleration.setY(proto_imuRawDataEvent.getY());
+       internal_acceleration.setZ(proto_imuRawDataEvent.getZ());
+       internal_imuRawDataEvent.setAcceleration(internal_acceleration);
+       Quaternion orientation = IPos2protoTransformer.createOrientation(proto_imuRawDataEvent.getOrientation().getX(),
+               proto_imuRawDataEvent.getOrientation().getY(),
+               proto_imuRawDataEvent.getOrientation().getZ(),
+               proto_imuRawDataEvent.getOrientation().getW());
+       internal_imuRawDataEvent.setAngularrate(orientation);
+       return internal_imuRawDataEvent;
+    }
+
+    public static UWB uwb_GSensor2Internal(GenericSensor.UWBRawDataEvent proto_uwbRawDataEvent) {
+        UWB internal_btRawDataEvent = modelFactory.createUWB();
+        // UWB adds nothing to Beacon, so all we do here is using the function for the transformation of the Beacon-specific properties
+        internal_btRawDataEvent = beacon_GSensor2Internal(internal_btRawDataEvent, proto_uwbRawDataEvent.getTimestamp(), proto_uwbRawDataEvent.getSensorId(), proto_uwbRawDataEvent.getDistancesMap(), proto_uwbRawDataEvent.getType());
+        return internal_btRawDataEvent;
+    }
+
+    private static Map<String, Double> convertToStringToDoubleMap(Map<String, String> distancesMap) throws NumberFormatException {
+        Map<String,Double> outputMap =new HashMap<String,Double>();
+        for (Map.Entry<String, String> entry : distancesMap.entrySet()) {
+            if(entry.getValue() != null){
+                outputMap.put(entry.getKey(), Double.parseDouble(entry.getValue()));
+            }
+        }
+        return outputMap;
+
+   }
+
+    public static IPosUWBEvent uwb_internal2IPosRawdata(UWB beaconRawdataEvent, String agentId, String agentType) {
+       IPosUWBEvent iPosUWBEvent = devKitFactory.createIPosUWBEvent();
+       iPosUWBEvent.setAgentId(agentId);
+       iPosUWBEvent.setSensorId(beaconRawdataEvent.getSensorId());
+       iPosUWBEvent.setAgentType(agentType);
+       iPosUWBEvent.setSensorType(beaconRawdataEvent.getType());
+       iPosUWBEvent.setTimeStamp(beaconRawdataEvent.getTimeStamp());
+       iPosUWBEvent.setDistances(beaconRawdataEvent.getDistances());
+       return iPosUWBEvent;
+   }
+
+    public static IPosBTEvent bt_internal2IPosRawdata(Bluetooth btRawdataEvent, String agentId, String agentType) {
+        IPosBTEvent iPosBTEvent = devKitFactory.createIPosBTEvent();
+        iPosBTEvent.setAgentId(agentId);
+        iPosBTEvent.setSensorId(btRawdataEvent.getSensorId());
+        iPosBTEvent.setAgentType(agentType);
+        iPosBTEvent.setSensorType(btRawdataEvent.getType());
+        iPosBTEvent.setTimeStamp(btRawdataEvent.getTimeStamp());
+        iPosBTEvent.setDistances(btRawdataEvent.getDistances());
+        iPosBTEvent.setRss(btRawdataEvent.getRss());
+        return iPosBTEvent;
+    }
+
+    private static Map<String, String> beaconRawdataMap_internal2GSensor(Map<String, Double> distances) {
+        HashMap<String, String> distancesGSensor = new HashMap<>();
+        for (Map.Entry<String, Double> distanceEntry : distances.entrySet()){
+            distancesGSensor.put(distanceEntry.getKey(), String.valueOf(distanceEntry.getValue().doubleValue()));
+        }
+        return distancesGSensor;
+    }
+
+    public static GenericSensor.IPosUWBEvent uwb_IPosRawdata2proto(IPosUWBEvent iPosUWBEvent_internal) {
+        GenericSensor.IPosUWBEvent.Builder protoIPosUWBEvent = GenericSensor.IPosUWBEvent.newBuilder();
+        protoIPosUWBEvent.setAgentId(iPosUWBEvent_internal.getAgentId());
+        protoIPosUWBEvent.setSensorId(iPosUWBEvent_internal.getSensorId());
+        protoIPosUWBEvent.setAgentType(iPosUWBEvent_internal.getAgentType());
+        protoIPosUWBEvent.setSensorType(iPosUWBEvent_internal.getSensorType());
+        protoIPosUWBEvent.setTimeStamp(iPosUWBEvent_internal.getTimeStamp());
+        protoIPosUWBEvent.putAllDistances(beaconRawdataMap_internal2GSensor(iPosUWBEvent_internal.getDistances()));
+        return protoIPosUWBEvent.build();
+   }
+
+    public static GenericSensor.IPosBTEvent bt_IPosRawdata2proto(IPosBTEvent iPosBTEvent_internal) {
+        GenericSensor.IPosBTEvent.Builder protoIPosBTEvent = GenericSensor.IPosBTEvent.newBuilder();
+        protoIPosBTEvent.setAgentId(iPosBTEvent_internal.getAgentId());
+        protoIPosBTEvent.setSensorId(iPosBTEvent_internal.getSensorId());
+        protoIPosBTEvent.setAgentType(iPosBTEvent_internal.getAgentType());
+        protoIPosBTEvent.setSensorType(iPosBTEvent_internal.getSensorType());
+        protoIPosBTEvent.setTimeStamp(iPosBTEvent_internal.getTimeStamp());
+        protoIPosBTEvent.putAllDistances(beaconRawdataMap_internal2GSensor(iPosBTEvent_internal.getDistances()));
+        protoIPosBTEvent.putAllRss(beaconRawdataMap_internal2GSensor(iPosBTEvent_internal.getRss()));
+        return protoIPosBTEvent.build();
+    }
+
+    public static GenericSensor.IPosRawdataEventWrapper uwb_wrapIntoRawdataEventWrapper(GenericSensor.IPosUWBEvent iPosUWBEvent_proto) {
+        GenericSensor.IPosRawdataEventWrapper.Builder iPosRawdataEventWrapper_proto = GenericSensor.IPosRawdataEventWrapper.newBuilder();
+        iPosRawdataEventWrapper_proto.addIPosUWBEvent(iPosUWBEvent_proto);
+        return iPosRawdataEventWrapper_proto.build();
+   }
+
+    public static GenericSensor.IPosRawdataEventWrapper bt_wrapIntoRawdataEventWrapper(GenericSensor.IPosBTEvent iPosBTEvent_proto) {
+        GenericSensor.IPosRawdataEventWrapper.Builder iPosRawdataEventWrapper_proto = GenericSensor.IPosRawdataEventWrapper.newBuilder();
+        iPosRawdataEventWrapper_proto.addIPosBTEvent(iPosBTEvent_proto);
+        return iPosRawdataEventWrapper_proto.build();
+    }
+
+    public static Bluetooth bt_GSensor2Internal(GenericSensor.BluetoothRawDataEvent proto_bluetoothRawDataEvent) {
+        Bluetooth internal_btRawDataEvent = modelFactory.createBluetooth();
+        internal_btRawDataEvent = beacon_GSensor2Internal(internal_btRawDataEvent, proto_bluetoothRawDataEvent.getTimestamp(), proto_bluetoothRawDataEvent.getSensorId(), proto_bluetoothRawDataEvent.getDistancesMap(), proto_bluetoothRawDataEvent.getType());
+        internal_btRawDataEvent.setRss(convertToStringToDoubleMap(proto_bluetoothRawDataEvent.getRssMap()));
+        return internal_btRawDataEvent;
+    }
+
+    private static <T extends Beacon> T beacon_GSensor2Internal(T internal_beaconRawDataEvent, String timestamp, String sensorId, Map<String, String> distances, String type){
+        internal_beaconRawDataEvent.setTimeStamp(timestamp);
+        internal_beaconRawDataEvent.setDistances(convertToStringToDoubleMap(distances));
+        internal_beaconRawDataEvent.setType(type);
+        internal_beaconRawDataEvent.setSensorId(sensorId);
+        return internal_beaconRawDataEvent;
+    }
+}
+
+
diff --git a/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java b/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java
index 900e8bdee1946ee97cbe6fa23c806580840400ae..e6f492767b20970cce26e36031d0ab7b833b2b01 100644
--- a/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java
+++ b/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java
@@ -1,22 +1,28 @@
 package ipos.project.SensorValueIntegration.api;
 
 import com.google.protobuf.InvalidProtocolBufferException;
-import ipos.models.SimpleScene.IposPosition;
+import ipos.models.GenericSensor;
+import ipos.models.GenericSensor.SensorPositionEvent;
+import ipos.models.GenericSensor.SensorEventWrapper;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.SensorValueIntegration.Service.GenericSensorTransformer;
+import ipos.project.UseCaseController.PositionMonitoring;
 import ipos.project.config.mqtt.Handler;
 import ipos.project.config.mqtt.MqttListener;
-import ipos.project.mapper.ProtoJsonMap;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.core.JmsTemplate;
 
+import java.util.List;
+
 
 // subscribe to the topic
-@MqttListener("test51/publish/positions")
+@MqttListener("usertopic/SensorEventWrapper")
 public class MqttPositionHandler implements Handler {
 
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
     JmsTemplate jmsTemplate;
 
     @Autowired
@@ -24,18 +30,96 @@ public class MqttPositionHandler implements Handler {
         this.jmsTemplate = jmsTemplate;
     }
 
+    static boolean iposFrameworkIsInitialized = false;
+
+    public static void setInitialized(boolean b) {
+        iposFrameworkIsInitialized = b;
+    }
+
+    // @Autowired
+   // private ExternalPubServiceImpl mqttService;
+
     // method that handle new message from the topic
     public void handle(MqttMessage message) {
         try {
-            IposPosition pos = ProtoJsonMap.fromJson(message.toString(), IposPosition.class);
-            //IposPosition pos = IposPosition.parseFrom(message.toString().getBytes());
-            assert pos != null;
-            LOG.info("IposPosition received: \n" + pos);
+            if (! iposFrameworkIsInitialized){
+                return;
+            }
+            SensorEventWrapper protoSensEventWrapper = ProtoJsonMap.fromJson(message.toString(), GenericSensor.SensorEventWrapper.class);
+            handleSensorEventWrapper(protoSensEventWrapper);
+          } catch (InvalidProtocolBufferException e) {
+            LOG.error("Invalid mqtt message:", e);
+        }
+    }
+
+    public static void handleSensorEventWrapper(GenericSensor.SensorEventWrapper iposSensorEventWrapper) {
+        LOG.info("IposSensorEventWrapper received: \n"
+                + iposSensorEventWrapper.toString());
+        // Annahme: iposSensorEventWrapper enthält für leere Felder leere Listen und nicht null
+        processBluetoothEvents(iposSensorEventWrapper.getBluetoothRawDataEventList());
+        processPositionEvents(iposSensorEventWrapper.getSensorPositionEventList());
+        processNFCRawdataEvents(iposSensorEventWrapper.getNfcRawDataEventList());
+        processIMURawdataEvents(iposSensorEventWrapper.getImuRawDataEventList());
+        processUWBRawdataEvents(iposSensorEventWrapper.getUwbRawDataEventList());
+        // this.jmsTemplate.convertAndSend("/request123", monReqInternal); // submit request to the internal broker
+    }
+
+    private static void processBluetoothEvents(List<GenericSensor.BluetoothRawDataEvent> bluetoothRawDataEventList) {
+        for ( GenericSensor.BluetoothRawDataEvent proto_bluetoothRawDataEvent : bluetoothRawDataEventList){
+            Bluetooth btEvent_beacon;
+            try {
+                btEvent_beacon = GenericSensorTransformer.bt_GSensor2Internal(proto_bluetoothRawDataEvent);
+            }catch(NumberFormatException e){
+                LOG.info("Warning: Received BT-rawdata that contained ill-formatted distance or rss information");
+                continue;
+            }
+            PositionMonitoring.receiveMessage((Beacon) btEvent_beacon);
+        }
+    }
+
+    private static void processUWBRawdataEvents(List<GenericSensor.UWBRawDataEvent> uwbRawDataEventList) {
+        for (GenericSensor.UWBRawDataEvent proto_uwbRawDataEvent : uwbRawDataEventList){
+            UWB internal_uwbRawDataEvent;
+            try {
+                internal_uwbRawDataEvent = GenericSensorTransformer.uwb_GSensor2Internal(proto_uwbRawDataEvent);
+            }catch (NumberFormatException e){
+                LOG.info("Warning: Received UWB-rawdata that contained ill-formatted distance information");
+                continue;
+            }
+            PositionMonitoring.receiveMessage(internal_uwbRawDataEvent);
+        }
+
+    }
+
+    private static void processIMURawdataEvents(List<GenericSensor.IMURawDataEvent> imuRawDataEventList) {
+        for (GenericSensor.IMURawDataEvent proto_imuRawDataEvent : imuRawDataEventList){
+            IMU internal_imuRawDataEvent = GenericSensorTransformer.imu_GSensor2Internal(proto_imuRawDataEvent);
+
+
+            // JMS-topic: imu_rawdata_event
+            PositionMonitoring.receiveMessage(internal_imuRawDataEvent);
+        }
+    }
+
+    private static void processNFCRawdataEvents(List<GenericSensor.NFCRawDataEvent> nfcRawDataEventList) {
+        for (GenericSensor.NFCRawDataEvent proto_nfcRawdataEvent : nfcRawDataEventList){
+            // transformer fakes nfc-timestamp...
+            NFC internal_nfcRawDataEvent = GenericSensorTransformer.nfc_GSensor2Internal(proto_nfcRawdataEvent);
+            PositionMonitoring.receiveMessage(internal_nfcRawDataEvent);
+        }
+    }
 
-            this.jmsTemplate.convertAndSend("/positions", pos); // submit position to the internal broker
+    private static void processPositionEvents(List<SensorPositionEvent> sensorPositionEventList) {
+        // assert sensorPositionEventList != null;
+        for (GenericSensor.SensorPositionEvent proto_sensPosEvent : sensorPositionEventList){
+            PositionEvent positionEvent = GenericSensorTransformer.posEvent_GSensor2Internal(proto_sensPosEvent);
+            LOG.info("SensorValueIntegration: Transformed Protobuf-SensorPositionEvent into Internal-PositionEvent: " + positionEvent.toString() + ", " + positionEvent.getPlacing().getPosition().getPoint().toString() + ", " + positionEvent.getPlacing().getOrientation().toString());
+
+            // vorübergehend: anstatt JMS einfach den PositionMonitoringController per Funktionsaufruf aufrufen
+            PositionMonitoring.receiveMessage(positionEvent);
+            // jmsTemplate.convertAndSend("/PositionEvent", protoSensPosEvent); // submit position to the internal broker
             //TODO: fix message converter for the internal broker
-        } catch (InvalidProtocolBufferException e) {
-            LOG.error("Invalid mqtt message:", e);
         }
     }
+
 }
diff --git a/src/main/java/ipos/project/UseCaseController/Administration.java b/src/main/java/ipos/project/UseCaseController/Administration.java
new file mode 100644
index 0000000000000000000000000000000000000000..a574f3ca2ea3f587347a882d39cb8dab7bfffe8f
--- /dev/null
+++ b/src/main/java/ipos/project/UseCaseController/Administration.java
@@ -0,0 +1,189 @@
+package ipos.project.UseCaseController;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.Functionality.DataServices;
+import ipos.project.Functionality.SRSConversion.SRSConversion;
+import org.apache.logging.log4j.LogManager;
+import org.springframework.stereotype.Component;
+
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+@Component
+public class Administration {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    public Administration(){}
+
+    public static void initialize(){
+        LOG.info("Application initialized");
+        DataServices.clearWorldModel();
+    }
+
+    public static void handleZone(Zone zone){
+        LOG.info("handling zone-object: " + zone.toString());
+        Administration.transformToRootCoordinates(zone); // transformation is necessary, EventFilter should have to evaluate ROOT-Positions, therefore both, the PositionEvents and the Space-CentrePoint, should have RootPositions.
+        DataServices.addZone(zone);
+    }
+
+    public static void handleAgent(Agent agent) {
+        LOG.info("handling agent-object: " + agent.toString());
+        DataServices.addAgent(agent);
+    }
+
+    public static void handleRefSystem(ReferenceSystem refSystem) {
+        // muss checken, ob das RefSystem auf das ggf. verwiesen wird - tatsächlich existiert. Falls nicht: Speicherung ablehnen
+        LOG.info("handling refSystem-object: " + refSystem.toString());
+        //this would delete the SRS-information of the refSystem-object and transform its origin into ROOT-SRS: Administration.transformToRootCoordinates(refSystem);
+        // nur sicherstellen das alle Bezugssysteme wirklich existieren
+        DataServices.addRefSystem(refSystem);
+    }
+
+    public static void handlePoi(POI poi) {
+        // muss checken, ob das RefSystem auf das verwiesen wird - tatsächlich existiert. Falls nicht: Speicherung ablehnen
+        LOG.info("handling poi-object: " + poi.toString());
+        LOG.info("INDFRO-DEBUG: SRS of poi-object: " + poi.getPlacing().getPosition().getReferenceSystem().getId());
+        Administration.transformToRootCoordinates(poi);
+        DataServices.addPoi(poi);
+    }
+
+    public static void transformToRootCoordinates(PositionEvent posEvent) {
+        LOG.info("INDFRO-DEBUG: Handling PositionEvent-object. SRS: " + posEvent.getPlacing().getPosition().getReferenceSystem().getId());
+        Administration.transformToRootCoordinates(posEvent.getPlacing());
+    }
+
+    public static void transformToRootCoordinates(Zone zone) {
+        zone.getSpace().stream()
+                .map(Administration::transformToRootCoordinates);
+    }
+
+    public static Space transformToRootCoordinates(Space space) {
+        LOG.info("INDFRO-DEBUG: Handling space-object. SRS: " + space.getCentrePoint().getPosition().getReferenceSystem().getId());
+        Administration.transformToRootCoordinates(space.getCentrePoint());
+        return space;
+    }
+
+    public static void transformToRootCoordinates(ReferenceSystem refSystem) {
+        LOG.info("INDFRO-DEBUG: Transforming refSystem-object " + refSystem.toString() + "to ROOT-SRS");
+        Administration.transformToRootCoordinates(refSystem.getOrigin());
+    }
+
+    public static void transformToRootCoordinates(POI poi) {
+        Administration.transformToRootCoordinates(poi.getPlacing());
+    }
+
+    /**
+     * Function recursively transforms a placing into a ROOT-placing. In each step the placing
+     * is transformed in a placing of the SRS that the origin of its current SRS has been defined
+     * in. Recursion is stopped after obtaining a ROOT-placing.
+     * @param placingToBeTransformed
+     */
+    public static void transformToRootCoordinates(Placing placingToBeTransformed) {
+        if (isNotRootPosition(placingToBeTransformed.getPosition())) {
+            ReferenceSystem nextTransformationGoal_SRS = placingToBeTransformed.getPosition().getReferenceSystem();
+            LOG.info("INDFRO-DEBUG: (before) ReferenceSystem: " + placingToBeTransformed.getPosition().getReferenceSystem().getId() + "; Position: " + PositionMonitoring.logPosition(placingToBeTransformed) + "; Orientation: " + PositionMonitoring.logOrientation(placingToBeTransformed));
+            SRSConversion.switchSRS(placingToBeTransformed, nextTransformationGoal_SRS); // assumption: not only position is changed but also ReferenceSystem-object of the placingToBeTransformed is updated
+            LOG.info("INDFRO-DEBUG: (after) ReferenceSystem: " + placingToBeTransformed.getPosition().getReferenceSystem().getId() + "; Position: " + PositionMonitoring.logPosition(placingToBeTransformed) + "; Orientation: " + PositionMonitoring.logOrientation(placingToBeTransformed));
+            LOG.info("INDFRO-DEBUG:");
+            transformToRootCoordinates(placingToBeTransformed); // recursion stops when placing.getPosition() has been transformed in a ROOT-position
+        }
+    }
+
+    public static void transformToRootCoordinates(Position position) {
+        LOG.info("INDFRO-DEBUG: Transforming Position-object " + position.toString() + "to ROOT-SRS");
+        Orientation dummyOrientation = createDummyOrientation();
+        Placing placing = DataServices.createPlacing(position, dummyOrientation);
+        transformToRootCoordinates(placing); // placing.getPosition() points to the position-object that was passed to this function. The contents of this object will be changed by this call.
+    }
+
+    private static Orientation createDummyOrientation() {
+        return DataServices.createOrientation(0, 0, 0, 0);
+    }
+
+    private static boolean isRootPosition(Position position) {
+        return !isNotRootPosition(position);
+    }
+
+    private static boolean isRootPosition(String srsId){
+        return !isNotRootPosition(srsId);
+    }
+
+    private static boolean isNotRootPosition(Position position) {
+        return isNotRootPosition(position.getReferenceSystem().getId());
+    }
+
+    private static boolean isNotRootPosition(String srsId){
+        return !srsId.equals(PositionMonitoring.SRS_ID_ROOT);
+    }
+
+    /**
+     * Warning: This function does not check whether SRSConversion is actually necessary.
+     * Use function Administration::isNotRootPosition to check whether SRSConversion is necessary,
+     * before calling this function
+     * @param orientation
+
+    public static void transformToRootCoordinates(Position position, Orientation orientation) {
+        // Komponente SRSConversion aufrufen
+
+                        SRSConversion.switchSRS(rootPlacing, DataServices.getReferenceSystemByIdOrNull("CeTI_SRS"));
+                        SRSConversion.switchSRS(cetiPlacing, DataServices.getReferenceSystemByIdOrNull("CeTI_SRS"));
+    }
+     */
+
+    /**
+     * This function expects the position posEvent to be defined in reference to the ROOT-SRS
+     * @param posEvent
+     * @param refSystemId
+     */
+    public static void transformToRequesterCoordinates(PositionEvent posEvent, String refSystemId) {
+        if(! posEvent.getPlacing().getPosition().getReferenceSystem().getId().equals(PositionMonitoring.SRS_ID_ROOT)){
+            LOG.warn("INDFRO-DEBUG: Warning: Function transformToRequesterCoordinates was called with a position that is not defined in reference to the ROOT-SRS. " +
+                    "All internal data processing should be based on ROOT-positions.");
+            return;
+        }
+        if(isRootPosition(refSystemId)){
+            return; // nothing to be done if ROOT is the transformation target, as posEvent is assumed to be a ROOT-position
+        }
+        ReferenceSystem finalTarget = DataServices.getReferenceSystemByIdOrNull(refSystemId);
+        Placing placingToBeTransformed = posEvent.getPlacing();
+        LOG.info("INDFRO-DEBUG: transformToRequesterCoordinates: Transforming posEvent (SRS: " + placingToBeTransformed.getPosition().getReferenceSystem().getId() +" ) to requester coordinates (SRS: " + refSystemId + ")");
+        List<ReferenceSystem> allTargetsFromRootToFinal = computeTargets(finalTarget);
+        LOG.info("INDFRO-DEBUG: Transformation targets (excluding " + PositionMonitoring.SRS_ID_ROOT + "): " + printTargets(allTargetsFromRootToFinal));
+        transformPlacingSuccessively(placingToBeTransformed, allTargetsFromRootToFinal);
+    }
+
+    private static String printTargets(List<ReferenceSystem> allTargetsFromRootToFinal) {
+        return allTargetsFromRootToFinal.stream()
+                .map(srs -> srs.getId())
+                .collect(Collectors.joining(" -> "));
+    }
+
+    /**
+     * Assumption: Sooner or later each target depends on ROOT-SRS
+     * @param target
+     * @return
+     */
+    private static List<ReferenceSystem> computeTargets(ReferenceSystem target) {
+        if (isRootPosition(target.getId())){
+            List<ReferenceSystem> targets = new LinkedList<>();
+            return targets; // ROOT-SRS itself is not a target, therefore it is not added to the list
+        }else {
+            ReferenceSystem nextTarget = target.getOrigin().getPosition().getReferenceSystem();
+            List<ReferenceSystem> targets = computeTargets(nextTarget);
+            targets.add(target); // targets[0]: the SRS that the ROOT-position should be transformed into; targets[targets.size()-1]: final target, i.e., requester-SRS
+            return targets;
+        }
+
+    }
+
+    private static void transformPlacingSuccessively(Placing placingToBeTransformed, List<ReferenceSystem> transformationTargets) {
+        for (ReferenceSystem transTarget : transformationTargets){
+            LOG.info("INDFRO-DEBUG: (before) ReferenceSystem: " + placingToBeTransformed.getPosition().getReferenceSystem().getId() + "; Position: " + PositionMonitoring.logPosition(placingToBeTransformed)  + "; Orientation: " + PositionMonitoring.logOrientation(placingToBeTransformed));
+            SRSConversion.switchSRS(placingToBeTransformed, transTarget);
+            LOG.info("INDFRO-DEBUG: (after) ReferenceSystem: " + placingToBeTransformed.getPosition().getReferenceSystem().getId() + "; Position: " + PositionMonitoring.logPosition(placingToBeTransformed)  + "; Orientation: " + PositionMonitoring.logOrientation(placingToBeTransformed));
+        }
+    }
+}
diff --git a/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java b/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java
index 88a84405b0f26bf65943970eb08515bef9654339..a885091d32e2fdd0a92e26703f5c3210bf5512a2 100644
--- a/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java
+++ b/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java
@@ -1,18 +1,691 @@
 package ipos.project.UseCaseController;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneIntegration;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.DataStorageQueryRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposMsgRcvEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+import ipos.project.Functionality.*;
+import ipos.project.Functionality.eventfilter.*;
+import ipos.project.Functionality.eventfilter.BeaconFilteringResult;
+import ipos.project.SensorValueIntegration.GenericSensorValueProcessor;
+import ipos.project.devkit.trans.IPos2protoTransformer;
+import org.apache.logging.log4j.LogManager;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.stereotype.Component;
-import ipos.models.SimpleScene.IposPosition;
+
+import java.text.ParseException;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 @Component
 public class PositionMonitoring {
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static List<eventFilter> eventFilters = new ArrayList<eventFilter>();
+    private static Map<String, List<String>> zonePopulation = new HashMap<String, List<String>>(); // maps zone-ids to list of ids of those agents that are currently located within that zone.
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+    private static IPosDevKitFactory devKitFactory = IPosDevKitFactory.eINSTANCE;
+
+    //TODO: Constant-definitions shall be migrated to a dedicated component. Otherwise, avoidable dependencies are created among PositionMonitoring and the other components
+    public static final String EXIT_NOTIFICATION_TYPE = "ExitNotification";
+    public static final String ENTRY_NOTIFICATION_TYPE = "EntryNotification";
+    public static final String UNDEFINED_TYPE = "undefined";
+    public static final String PROTOBUF_SERIALIZATION_TYPE = "protobuf";
+    public static final String JSON_SERIALIZATION_TYPE = "json";
+    public static final String ACCURACY_FUSION_STRATEGY = "accuracy";
+    public static final String TRACKING_SUFFIX = "_tracking";
+    public static final String TOPIC_ConfigWrapper = "usertopic/IposConfigWrapper";
+    public static final String TOPIC_DOOR = "Human_at_Door_Side";
+    public static final String TOPIC_WINDOW = "Human_at_Window_Side";
+    public static final String ZONE_ID_DOOR = "cobot1_door_zone";
+    public static final String ZONE_ID_WINDOW = "cobot1_window_zone";
+    public static final String SRS_ID_ROOT = "ROOT";
+
+    public static final int SDF_TIME_INTERVAL = 2500; // recent milliseconds to take into account for sensor data fusion
+
+    public PositionMonitoring(){}
+
+    public static void receiveMessage(NFC nfcRawDataEvent) {
+        PositionEvent positionEvent = PositionCalculation.calcPositionFromNfcOrNull(nfcRawDataEvent);
+        if (positionEvent != null) {
+            updateLocalizableObject(positionEvent);
+            try {
+                Odometry.calibrate(positionEvent);
+            } catch (ParseException e) {
+                LOG.warn("Odometry-component could not be calibrated");
+                e.printStackTrace();
+            }
+            receiveMessage(positionEvent);
+        }
+    }
+
+    public static void receiveMessage (Beacon beaconRawDataEvent){
+        // currently we only filter rawdata on beacon-level. Position calculation is performed on the level of the specific beacon technology (e.g., UWB)
+        // calculateAndProcessPosition(uwbRawDataEvent);
+        List<BeaconFilteringResult> beaconFilteringResults = filterRawdata(beaconRawDataEvent);
+        processBeaconFilteringResults(beaconFilteringResults);
+    }
+
+    public static void receiveMessage (UWB uwbRawDataEvent){
+        calculateAndProcessPosition(uwbRawDataEvent);
+        List<BeaconFilteringResult> beaconFilteringResults = filterRawdata((Beacon) uwbRawDataEvent);
+        processBeaconFilteringResults(beaconFilteringResults);
+    }
+
+    private static void calculateAndProcessPosition(UWB uwbRawDataEvent) {
+        Optional<PositionEvent> optionalPositionEvent = Optional.empty();
+        try {
+            optionalPositionEvent = Triangulation.update(uwbRawDataEvent);
+            // optionalPositionEvent = PositionCalculation.updateUWBPositionFromDistances(uwbRawDataEvent);
+            // = PositionCalculation.updateBTDistancesFromRSS(
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        if (optionalPositionEvent.isPresent()) {
+            PositionEvent positionEvent = optionalPositionEvent.get();
+            LOG.info("OP:");
+            LOG.info("OP:");
+            LOG.info("OP:");
+            LOG.info("OP:----PositionMonitoring--------------------------");
+            LOG.info("OP: position: " + logPosition(positionEvent.getPlacing()));
+            updateLocalizableObject(positionEvent);
+            receiveMessage(positionEvent);
+        }else {
+            LOG.info("OP: No position could be calculated from UWBRawDataEvent");
+        }
+    }
+
+    private static void processBeaconFilteringResults(List<BeaconFilteringResult> beaconFilteringResults) {
+        for (BeaconFilteringResult beaconFilteringResult : beaconFilteringResults){
+            if (beaconFilteringResult.hasBlockedEvent()){ // don't publish Beacon-rawdata on behalf of an eventFilter that has blocked the event
+                continue;
+            }
+            eventFilter eFilter = getEventFilterByIdOrNull(beaconFilteringResult.getMonitoringTaskId());
+
+            LocalizableObject lObject = PositionMonitoring.getLObjectByIdOrNull(beaconFilteringResult.getBeaconRawdataEvent().getSensorId());
+            if (null == lObject || null == lObject.getAgent()) {
+                LOG.error("Internal Beacon-Rawdata Event could not be transformed into IPos Rawdata-Event " +
+                        "No LocalizableObject with the provided sensor-id could be found, or no agent " +
+                        "is associated to the LocalizableObject that has been found.");
+                return;
+            }
+            GenericSensorValueProcessor.receiveMessage(beaconFilteringResult.getBeaconRawdataEvent(), beaconFilteringResult.getMonitoringTaskId(), eFilter.getSerializationType(), lObject.getAgent().getId(), lObject.getAgent().getAgentType());
+        }
+    }
+
+    private static List<BeaconFilteringResult> filterRawdata(Beacon beaconRawDataEvent) {
+        List<BeaconFilteringResult> beaconFilteringResults = new LinkedList<BeaconFilteringResult>();
+        for (eventFilter eFilter : eventFilters){
+            beaconFilteringResults.add(eFilter.processRawdata(beaconRawDataEvent));
+        }
+        return beaconFilteringResults;
+    }
+
+    static int imuCount = 0;
+
+    // JMS-topic: imuRawdataEvent
+    public static void receiveMessage(IMU imuRawdataEvent){
+
+        PositionEvent positionEvent = null; // if not calibrated: exception
+        try {
+            positionEvent = Odometry.update(imuRawdataEvent);
+            logOdo(positionEvent);
+        } catch (ParseException e) {
+            LOG.info("Odometry: ParseException: " + e.getMessage());
+        } catch (MissingResourceException e){
+            LOG.info("Odometry: " + e.getMessage());
+        }
+        if (positionEvent != null) {
+            updateLocalizableObject(positionEvent);
+            if ( imuCount < 5) {
+                imuCount += 1;
+            }else {
+                receiveMessage(positionEvent);
+                imuCount = 0;
+            }
+        }
+
+
+    }
+
+    private static void logOdo(PositionEvent positionEvent) {
+        float odoAccuracy = ((Gaussian) positionEvent.getPlacing().getPosition().getAccuracy()).getConfidenceInterval();
+        LOG.info("ODO: Odometry calculated position with accuracy: " + odoAccuracy);
+    }
+
+    private static eventFilter getEventFilterByIdOrNull(String monitoringTaskId){
+        for (eventFilter eFilter : eventFilters){
+            if (eFilter.getMonitoringTaskId().equals(monitoringTaskId)){
+                return eFilter;
+            }
+        }
+        return null;
+    }
+
+    private static void updateLocalizableObject(PositionEvent positionEvent) {
+        LocalizableObject lObject = DataServices.getLObjectByIdOrNull(positionEvent.getLObjectId());
+        if (lObject == null){
+            LOG.info("Warning: lObject not found. id contained in positionEvent: " + positionEvent.getLObjectId());
+        }
+        // TODO: caution: all changes to the data model should be performed using DataServices.
+        // Directly changing this object just works for the current simple case that we only have the object-representation of the world model
+        // in general it has to be made sure that both, all links from this object and to this object keep intact
+        lObject.setCurrentPlacing(positionEvent.getPlacing());
+        lObject.setLastPosUpdate(positionEvent.getTimeStamp());
+    }
 
-    @JmsListener(destination = "/positions123", containerFactory = "jmsListenFactory")
-    public void receiveMessage(IposPosition pos) {
-        LOG.info("Received <" + pos + ">");
+    private MonitoringRequest createMonitoringRequest(List<String> frameIds, String monitoringTaskId) {
+        MonitoringRequest monReq = devKitFactory.createMonitoringRequest();
+        monReq.getFrameIds().addAll(frameIds);
+        monReq.setMonitoringTaskId(monitoringTaskId);
+        return monReq;
+    }
+
+    public static LocalizableObject getLObjectByIdOrNull(String lObjectId){
+       return DataServices.getLObjectByIdOrNull(lObjectId);
+     }
+
+    public static ReferenceSystem getReferenceSystemByIdOrNull(String refSystemId){
+        return DataServices.getReferenceSystemByIdOrNull(refSystemId);
+     }
+
+    @JmsListener(destination = "/monitoringRequest", containerFactory = "jmsListenFactory")
+    public static void receiveMessage(MonitoringRequest monReq) {
+        LOG.info("Received MonitoringRequest <" + monReq + ">");
+        eventFilter filter = new eventFilter(monReq);
+        EventFilterCondition config = createAndInitEventFilterCondition();
+        if (! readConfig.readFilterConfigFromMonitoringRequest(monReq, config)){
+            return; // monitoringRequest could not be read
+        }
+        filter.init(config);
+        eventFilters.add(filter);
+        LOG.info("EventFilter was created: " + filter.toString() + "; monitoringTaskId: " + filter.getMonitoringTaskId() + "; zone-ids:" + filter.getFilterConditionConfig().getPositionConditionCells().keySet() + "; property: " + new HashSet(filter.getFilterConditionConfig().getPropertyCondition()));
+
+        /*
+         * trackingTaskId equals MonitoringTaskId + '_tracking' (which equals the name
+         * of the topic used for fetching the stored positions) to be able to
+         * distinguish the monitoring-topic from the tracking-topic. Therefore, the
+         * data should be stored using the altered name. The DataQueryRequest will also
+         * contain the suffix, therefore, we change the suffix here automatically.
+        */
+        String trackingTaskId = monReq.getMonitoringTaskId() + PositionMonitoring.TRACKING_SUFFIX;
+        DataServices.initTrackingTask(trackingTaskId);
+    }
+
+    private static EventFilterCondition createAndInitEventFilterCondition() {
+        EventFilterCondition config = modelFactory.createEventFilterCondition();
+        config.setPositionConditionCells(new HashMap<>());
+        config.setSensorIdCondition(new LinkedList<>());
+        config.setPropertyCondition(new LinkedList<>());
+        return config;
+    }
+
+    private static boolean isDoor = false;
+    private static boolean isCentre = false;
+    private static boolean isWindow = false;
+    private static boolean firstMessage = true;
+
+
+    /**
+     * It is important to find out which zones should be actually reported to the requester
+     * (there may be other zones that overlap the ones that tha requester wanted to monitor or track)
+     * I think, we should make sure that using they key trackingTaskId only those positionEvents should be persisted
+     * that do actually have been accepted by the associated monitoringRequest (so, whose monitoringRequestId equals
+     * the trackingTaskId without "_tracking" at the end)
+     * @param dsQueryRequest
+     */
+    public static void receiveMessage(DataStorageQueryRequest dsQueryRequest){
+        if(! dsQueryRequest.getTrackingTaskId().endsWith(PositionMonitoring.TRACKING_SUFFIX)){
+            LOG.warn("Can not handle QueryRequest due to unexpected trackingTaskId. " +
+                    "TrackingTaskIds shall end with " + PositionMonitoring.TRACKING_SUFFIX);
+            return;
+        }
+        String trackingTaskId = dsQueryRequest.getTrackingTaskId();
+        List<PositionEvent> trackedEvents = DataServices.query(dsQueryRequest.getTrackingTaskId());
+        DataStorageQueryResponse dsQueryResponse = modelFactory.createDataStorageQueryResponse();
+        dsQueryResponse.getPositionEvents().addAll(trackedEvents);
+        dsQueryResponse.setTrackingTaskId(trackingTaskId);
+        eventFilter eFilter = getEventFilterFromTrackingTaskId(trackingTaskId);
+        SimpleSceneIntegration.receiveMessage(dsQueryResponse, dsQueryRequest.getTrackingTaskId(), eFilter.getSerializationType());
+    }
+
+    private static eventFilter getEventFilterFromTrackingTaskId(String trackingTaskId) {
+        int lengthMonitoringTaskId = trackingTaskId.length() - PositionMonitoring.TRACKING_SUFFIX.length();
+        String monitoringTaskId = trackingTaskId.substring(0, lengthMonitoringTaskId);
+        eventFilter eFilter = getEventFilterByIdOrNull(monitoringTaskId);
+        return eFilter;
+    }
+
+    // @JmsListener(destination = "/PositionEvent", containerFactory = "jmsListenFactory")
+    public static void receiveMessage(PositionEvent posEvent) {
+        // TODO: Update currentPlacing attribute of the affected localizableObject
+        LOG.info("Received <" + posEvent + ">");
+        logging_sdfindfro(posEvent);
+        Administration.transformToRootCoordinates(posEvent);
+        LOG.info("Position after transformation to ROOT-coordinates: " + posEvent.getPlacing().getPosition().toString());
+
+        boolean posEventMeetsSdfAccuracyCondition = SensorDataFusion.isMostAccuratePositionAvailable(posEvent);
+        List<PositionFilteringResult> positionFilteringResults = new LinkedList<>();
+        for (eventFilter eFilter : eventFilters){
+           try {
+                if (eFilterMayHandlePosEvent(posEvent, posEventMeetsSdfAccuracyCondition, eFilter)){
+                    positionFilteringResults.add(applyEfilterToPosEvent(posEvent, eFilter));
+                }
+            } catch (ParseException e) {
+               processFilteringResults(posEvent, positionFilteringResults);
+               e.printStackTrace();
+                return;
+            }
+        }
+        processFilteringResults(posEvent, positionFilteringResults);
+        LOG.info("INDFRO-DEBUG: zonePopulation after processing filtering results: " + zonePopulation.toString());
+    }
+
+    public static void receiveMessage(MessageReceivedEvent messageReceivedEvent) {
+        try {
+            _receiveMessage(messageReceivedEvent);
+        }catch (NullPointerException e){
+            LOG.info("Could not process received message. " + e.getMessage());
+            e.printStackTrace();
+        }
+    }
+
+    private static void _receiveMessage(MessageReceivedEvent messageReceivedEvent) {
+        for (eventFilter eFilter : eventFilters){
+            applyEFilterToMessageReceivedEventAndProcessFilteringResult(messageReceivedEvent, eFilter);
+        }
+    }
+
+    private static void applyEFilterToMessageReceivedEventAndProcessFilteringResult(MessageReceivedEvent messageReceivedEvent, eventFilter eFilter) {
+        MsgRcvFilteringResult msgRcvFilteringResult = eFilter.processMessageReceivedEvent(messageReceivedEvent);
+        if (msgRcvFilteringResult.hasBlockedEvent()){
+            return;
+        }else{
+            IposMsgRcvEvent iposMsgRcvEvent = createIposMsgRcvEvent(msgRcvFilteringResult);
+            LOG.info("VDA5050: Filter accepted MessageReceived event.");
+            LOG.info("VDA5050: Corresponding IposMsgRcvEvent: " + iposMsgRcvEvent.toString());
+            SimpleSceneIntegration.receiveMessage(iposMsgRcvEvent, msgRcvFilteringResult.getMonitoringTaskId(), eFilter.getSerializationType());
+        }
+    }
+
+    private static IposMsgRcvEvent createIposMsgRcvEvent(MsgRcvFilteringResult msgRcvFilteringResult) {
+        LocalizableObject lObject = getLObjectAssociatedToMessageRcvFilteringEvent(msgRcvFilteringResult);
+        IposMsgRcvEvent iposMsgRcvEvent = extendMessageRcvFilteringEventToIposMsgRcvFilteringEvent(msgRcvFilteringResult, lObject);
+        return iposMsgRcvEvent;
+    }
+
+    private static IposMsgRcvEvent extendMessageRcvFilteringEventToIposMsgRcvFilteringEvent(MsgRcvFilteringResult msgRcvFilteringResult, LocalizableObject lObject) {
+        IposMsgRcvEvent iposMsgRcvEvent = devKitFactory.createIposMsgRcvEvent();
+        iposMsgRcvEvent.setProtocolName(msgRcvFilteringResult.getMessageReceivedEvent().getProtocolName());
+        iposMsgRcvEvent.setSerializedMsg(msgRcvFilteringResult.getMessageReceivedEvent().getSerializedMsg());
+        iposMsgRcvEvent.setAgentId(msgRcvFilteringResult.getMessageReceivedEvent().getAgentId());
+        iposMsgRcvEvent.setExtractedAttributes(msgRcvFilteringResult.getMessageReceivedEvent().getExtractedAttributes());
+        iposMsgRcvEvent.setTimestamp(msgRcvFilteringResult.getMessageReceivedEvent().getTimestamp());
+        handleOptionalData(lObject, iposMsgRcvEvent);
+        iposMsgRcvEvent.getLastKnownZonedescriptors().addAll(createDescriptorsForZonesThatAgentIsCurrentlyLocatedIn(msgRcvFilteringResult));
+        return iposMsgRcvEvent;
+    }
+
+    private static void handleOptionalData(LocalizableObject lObject, IposMsgRcvEvent iposMsgRcvEvent) {
+        if (null != lObject.getCurrentPlacing() && null != lObject.getCurrentPlacing().getPosition()){
+            iposMsgRcvEvent.setLastKnownPosition(lObject.getCurrentPlacing().getPosition());
+            iposMsgRcvEvent.setLastPosUpdate(lObject.getLastPosUpdate());
+        }
+        if (null != lObject.getCurrentPlacing() && null != lObject.getCurrentPlacing().getOrientation()){
+            iposMsgRcvEvent.setLastKnownOrientation(lObject.getCurrentPlacing().getOrientation());
+        }
+    }
+
+
+    private static List<ZoneDescriptor> createDescriptorsForZonesThatAgentIsCurrentlyLocatedIn(MsgRcvFilteringResult msgRcvFilteringResult) {
+        List<ZoneDescriptor> zoneDescriptors = new LinkedList<>();
+        eventFilter eFilter = Objects.requireNonNull(getEventFilterByIdOrNull(msgRcvFilteringResult.getMonitoringTaskId()), "unknown monitoring-task-id: " + msgRcvFilteringResult.getMonitoringTaskId());
+        Set<String> zoneIdsThatEFilterIsInterestedIn = eFilter.getFilterConditionConfig().getPositionConditionCells().keySet();
+        for (String zoneId : zoneIdsThatEFilterIsInterestedIn){
+            List<String> idsOfAgentsCurrentlyInZone = Optional.ofNullable(zonePopulation.get(zoneId)).orElse(new LinkedList<>());
+            // Is the AGV that the Message originated from known to be currently located in that zone?
+            if(idsOfAgentsCurrentlyInZone.contains(msgRcvFilteringResult.getMessageReceivedEvent().getAgentId())){
+                ZoneDescriptor zoneDescriptor = modelFactory.createZoneDescriptor();
+                zoneDescriptor.setZoneId(zoneId);
+                zoneDescriptor.setNotificationType(UNDEFINED_TYPE); // notification type: Do we indicate with this message that a zone was left or entered?
+                zoneDescriptors.add(zoneDescriptor);
+            }
+        }
+        return zoneDescriptors;
+    }
+
+    private static LocalizableObject getLObjectAssociatedToMessageRcvFilteringEvent(MsgRcvFilteringResult msgRcvFilteringResult) {
+        String agentId_whichEquals_sensorId = msgRcvFilteringResult.getMessageReceivedEvent().getAgentId();
+        LocalizableObject lObject = getLObjectByIdOrNull(agentId_whichEquals_sensorId);
+        return Objects.requireNonNull(lObject, "Received message is associated to an unknown sensor-id: " + agentId_whichEquals_sensorId);
+    }
+
+    private static void processFilteringResults(PositionEvent posEvent, List<PositionFilteringResult> positionFilteringResults) {
+        Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors = translateResultsIntoZoneDescriptors(positionFilteringResults);
+        persistPositionEvent(posEvent, eFilterZoneDescriptors);
+        sendPositionEventToRequesters(posEvent, eFilterZoneDescriptors);
+        updateZoneAssociations(posEvent, eFilterZoneDescriptors);
+        updateLocalizableObject(posEvent);
+    }
+
+    /**
+     * Assumption: The PositionEvent posEvent passed the eventFilter whose results are
+     * communicated by the zoneDescriptors.
+     * @param posEvent
+     * @param eFilterZoneDescriptors
+     */
+    private static void sendPositionEventToRequesters(PositionEvent posEvent, Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors) {
+        Set<String> sentAlready = sendExitNotifications(posEvent, eFilterZoneDescriptors);
+        sendOtherMonitoringMessages(posEvent, eFilterZoneDescriptors, sentAlready);
+    }
+
+    private static void sendOtherMonitoringMessages(PositionEvent posEvent, Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors, Set<String> sentAlready) {
+        // TODO: This code duplicates sendExitNotifications()-function
+        Set<String> toBeSent = eFilterZoneDescriptors.keySet().stream().collect(Collectors.toSet());
+        toBeSent.removeAll(sentAlready);
+        for (String monitoringTaskId : toBeSent){
+            List<ZoneDescriptor> zoneDescriptorsEFilterResult = eFilterZoneDescriptors.get(monitoringTaskId);
+            eventFilter eFilter = getEventFilterByIdOrNull(monitoringTaskId);
+            if (eFilter == null){
+                LOG.warn("A monitoringTaskId was passed that is not associated to any known eventFilter");
+                continue;
+            }
+            PositionEvent posEventCopy = createDeepCopyOfPosEvent(posEvent);
+            posEventCopy.getZonedescriptors().addAll(zoneDescriptorsEFilterResult); // ZoneDescriptors-Collection of PositionEvent was empty up until this point of execution
+            Administration.transformToRequesterCoordinates(posEventCopy, eFilter.getRefSystemId());
+            SimpleSceneIntegration.receiveMessage(posEventCopy, monitoringTaskId, getFirstNotificationTypeOrUndefined(zoneDescriptorsEFilterResult), eFilter.getSerializationType());
+        }
+    }
+
+    private static Set<String> sendExitNotifications(PositionEvent posEvent, Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors) {
+        // TODO: This code duplicates sendOtherNotifications()-function
+        Set<String> sentAlready = new HashSet<>();
+        for (String monitoringTaskId : eFilterZoneDescriptors.keySet()){
+            List<ZoneDescriptor> zoneDescriptorsEFilterResult = eFilterZoneDescriptors.get(monitoringTaskId);
+            eventFilter eFilter = getEventFilterByIdOrNull(monitoringTaskId);
+            if (eFilter == null){
+                LOG.warn("A monitoringTaskId was passed that is not associated to any known eventFilter");
+                continue;
+            }
+            if( containsExitNotification(zoneDescriptorsEFilterResult)){
+                PositionEvent posEventCopy = createDeepCopyOfPosEvent(posEvent);
+                posEventCopy.getZonedescriptors().addAll(zoneDescriptorsEFilterResult);
+                Administration.transformToRequesterCoordinates(posEventCopy, eFilter.getRefSystemId());
+                SimpleSceneIntegration.receiveMessage(posEventCopy, monitoringTaskId, getFirstNotificationTypeOrUndefined(zoneDescriptorsEFilterResult), eFilter.getSerializationType());
+                sentAlready.add(monitoringTaskId);
+            }
+        }
+        return sentAlready;
+    }
+
+    private static String getFirstNotificationTypeOrUndefined(List<ZoneDescriptor> zoneDescriptorsEFilterResult) {
+        String firstNotificationType = PositionMonitoring.UNDEFINED_TYPE;
+        if (zoneDescriptorsEFilterResult.size() > 0){
+            firstNotificationType = zoneDescriptorsEFilterResult.get(0).getNotificationType();
+        }
+        return firstNotificationType;
+    }
+
+    private static boolean containsExitNotification(List<ZoneDescriptor> zoneDescriptorsEFilterResult) {
+        for (ZoneDescriptor zoneDescriptor : zoneDescriptorsEFilterResult){
+            if (zoneDescriptor.getNotificationType().equals(PositionMonitoring.EXIT_NOTIFICATION_TYPE)){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private static void persistPositionEvent(PositionEvent posEvent, Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors) {
+        for (String monitoringTaskId : eFilterZoneDescriptors.keySet()){
+            List<ZoneDescriptor> zoneDescriptorsEFilterResult = eFilterZoneDescriptors.get(monitoringTaskId);
+            PositionEvent posEventCopy = createDeepCopyOfPosEvent(posEvent);
+            posEventCopy.getZonedescriptors().addAll(zoneDescriptorsEFilterResult);
+            DataServices.persist(posEventCopy, monitoringTaskId + PositionMonitoring.TRACKING_SUFFIX);
+        }
+    }
+
+    /**
+     * Creates a shallow copy of the posEvent
+     * @param posEvent
+     * @return
+     */
+    private static PositionEvent createDeepCopyOfPosEvent(PositionEvent posEvent) {
+        PositionEvent posEventDeepCopy = modelFactory.createPositionEvent();
+        posEventDeepCopy.setPlacing(createDeepCopyOfPlacing(posEvent.getPlacing()));
+        posEventDeepCopy.setTimeStamp(posEvent.getTimeStamp());
+        posEventDeepCopy.setLObjectId(posEvent.getLObjectId());
+        return posEventDeepCopy;
+    }
+
+    private static Placing createDeepCopyOfPlacing(Placing placingOriginal) {
+        Placing placingCopy = IPos2protoTransformer.createPlacing(
+                IPos2protoTransformer.createPosition(
+                        IPos2protoTransformer.createPoint3D(
+                                ((Point3D) placingOriginal.getPosition().getPoint()).getX(),
+                                ((Point3D) placingOriginal.getPosition().getPoint()).getY(),
+                                ((Point3D) placingOriginal.getPosition().getPoint()).getZ()
+                        ),
+                        ((Gaussian) placingOriginal.getPosition().getAccuracy()).getConfidenceInterval(),
+                        DataServices.getReferenceSystemByIdOrNull(placingOriginal.getPosition().getReferenceSystem().getId())
+                ),
+                IPos2protoTransformer.createOrientation(
+                        ((Quaternion) placingOriginal.getOrientation()).getX(),
+                        ((Quaternion) placingOriginal.getOrientation()).getY(),
+                        ((Quaternion) placingOriginal.getOrientation()).getZ(),
+                        ((Quaternion) placingOriginal.getOrientation()).getW()
+                )
+        );
+        return placingCopy;
+    }
+
+    private static void updateZoneAssociations(PositionEvent posEvent, Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors) {
+        String agentId = DataServices.getAgentForLocalizableObject(posEvent.getLObjectId()).getId();
+        for (String monitoringTaskId  : eFilterZoneDescriptors.keySet()){
+            updateEfilterZoneAssociations(eFilterZoneDescriptors, agentId, monitoringTaskId);
+        }
+
+    }
+
+    private static void updateEfilterZoneAssociations(Map<String, List<ZoneDescriptor>> eFilterZoneDescriptors, String agentId, String monitoringTaskId) {
+        List<ZoneDescriptor> zoneDescriptorsEFilterResult = eFilterZoneDescriptors.get(monitoringTaskId);
+        for (ZoneDescriptor zoneDescriptor : zoneDescriptorsEFilterResult){
+            if (zoneDescriptor.getNotificationType().equals(PositionMonitoring.ENTRY_NOTIFICATION_TYPE)){
+                LOG.info("INDFRO-DEBUG: Associating agent " + agentId + " with zone " + zoneDescriptor.getZoneId());
+                associateAgentWithZone(zoneDescriptor.getZoneId(), agentId);
+            }
+            if (zoneDescriptor.getNotificationType().equals(PositionMonitoring.EXIT_NOTIFICATION_TYPE)){
+                LOG.info("INDFRO-DEBUG: Disassociating agent " + agentId + " from zone " + zoneDescriptor.getZoneId());
+                disassociateAgentFromZone(zoneDescriptor.getZoneId(), agentId);
+            }
+        }
+    }
+
+    /**
+     * ZoneDescriptors are provided for filteringResults that originated in eventFilters
+     * that rejected the event only if those ZoneDescriptors communicate an ExitNotification.
+     * @param positionFilteringResults
+     * @return
+     */
+    private static Map<String, List<ZoneDescriptor>> translateResultsIntoZoneDescriptors(List<PositionFilteringResult> positionFilteringResults) {
+        Map<String, List<ZoneDescriptor>> eFilterzoneDescriptors = new HashMap<>();
+        for (PositionFilteringResult positionFilteringResult : positionFilteringResults){
+            String monitoringTaskId = positionFilteringResult.getMonitoringTaskId();
+            List<ZoneDescriptor> zoneDescriptors = toZoneDescriptors(positionFilteringResult);
+            if (!positionFilteringResult.hasBlockedEvent()) {
+                eFilterzoneDescriptors.put(monitoringTaskId, zoneDescriptors);
+            }else{
+                if (containsExitNotification(zoneDescriptors)){
+                    // send monitoring messages and persist even if the filter rejected the event, as it contains an ExitNotification for a monitored zone
+                    eFilterzoneDescriptors.put(monitoringTaskId, zoneDescriptors);
+                }
+            }
+        }
+        return eFilterzoneDescriptors;
+    }
+
+    private static List<ZoneDescriptor> toZoneDescriptors(PositionFilteringResult positionFilteringResult) {
+        List<ZoneDescriptor> zoneDescriptors = new LinkedList<>();
+        zoneDescriptors.addAll(calcDescriptorsForMatchingZones(positionFilteringResult));
+        zoneDescriptors.addAll(calcDescriptorsForNonMatchingZones(positionFilteringResult));
+        return zoneDescriptors;
+    }
+
+    private static List<ZoneDescriptor> calcDescriptorsForNonMatchingZones(PositionFilteringResult positionFilteringResult) {
+        List<ZoneDescriptor> zoneDescriptors = new LinkedList<>();
+        for (String zoneId : positionFilteringResult.getNonMatchingPositionConditionCellIds()){
+            ZoneDescriptor zoneDescriptor = modelFactory.createZoneDescriptor();
+            zoneDescriptor.setZoneId(zoneId);
+            if(isExitNotification(positionFilteringResult, zoneId)){
+                zoneDescriptor.setNotificationType(PositionMonitoring.EXIT_NOTIFICATION_TYPE);
+                zoneDescriptors.add(zoneDescriptor);
+            }
+        }
+        return zoneDescriptors;
+    }
+
+    private static List<ZoneDescriptor> calcDescriptorsForMatchingZones(PositionFilteringResult positionFilteringResult) {
+        List<ZoneDescriptor> zoneDescriptors = new LinkedList<>();
+        for (String zoneId : positionFilteringResult.getMatchingPositionConditionCellIds()){
+            ZoneDescriptor zoneDescriptor = modelFactory.createZoneDescriptor();
+            //LOG.info("OP: zoneId: " + zoneId);
+            zoneDescriptor.setZoneId(zoneId);
+            if(isEntryNotification(positionFilteringResult, zoneId)) {
+                zoneDescriptor.setNotificationType(PositionMonitoring.ENTRY_NOTIFICATION_TYPE);
+            }else {
+                zoneDescriptor.setNotificationType(PositionMonitoring.UNDEFINED_TYPE);
+            }
+            zoneDescriptors.add(zoneDescriptor);
+        }
+        return zoneDescriptors;
+    }
+
+    private static void logging_sdfindfro(PositionEvent posEvent) {
+        LocalizableObject lObject = PositionMonitoring.getLObjectByIdOrNull(posEvent.getLObjectId());
+        if (lObject == null){
+            LOG.info("INDFRO: Warning, unknown sensorId was found. Can not log!");
+            return;
+        }
+        String sensorType = lObject.getSensorType();
+        String timestamp = posEvent.getTimeStamp();
+        String sensorId = posEvent.getLObjectId();
+        String agentId = lObject.getAgent().getId();
+        LOG.info("SDF: Received: sensorType: " + sensorType + " timestamp: " + timestamp + " now: " + LocalDateTime.now() + " sensorId: " + sensorId + " agentId: " + agentId);
+        LOG.info("INDFRO:");
+        LOG.info("INDFRO: Received: sensorType: " + sensorType + "; position: " + logPosition(posEvent.getPlacing()) + "; orientation: " + logOrientation(posEvent.getPlacing()) + "; timestamp: " + timestamp + "; sensorId: " + sensorId + "; agentId: " + agentId);
+    }
+
+    public static String logPosition(Placing placing) {
+        Point3D point = (Point3D) placing.getPosition().getPoint();
+        return "(x: " + point.getX() + ", y: " + point.getY() + ", z: " + point.getZ() + ")";
+    }
+
+    public static String logOrientation(Placing placing) {
+        Quaternion orientation = (Quaternion) placing.getOrientation();
+        return "(x: " + orientation.getX() + ", y: " + orientation.getY() + ", z: " + orientation.getZ() + ", w: " + orientation.getW() + ")";
+    }
+
+    /**
+     * An event-filter may hot handle a position event if the filter should respect the results of
+     * sensor data fusion (e.g., wrt accuracy-criterium) and the result is negative for this event,
+     * i.e., the event did not pass sensor data fusion and was rejected. If sensor-data-fusion is not
+     * relevant, the eFilter should handle the event regardless of whether it was sorted out by sdf or
+     * not. If it is relevant, the eFilter should block the event if it was sorted out by sdf.
+     * @param posEvent
+     * @param posEventMeetsSdfAccuracyCondition
+     * @param eFilter
+     * @return
+     */
+    private static boolean eFilterMayHandlePosEvent(PositionEvent posEvent, boolean posEventMeetsSdfAccuracyCondition, eventFilter eFilter) {
+        boolean sdfIsRelevant = eFilter.respectsAccuracySdfForPosEvent(posEvent);
+        return !sdfIsRelevant || (sdfIsRelevant && posEventMeetsSdfAccuracyCondition);
+    }
+
+    private static PositionFilteringResult applyEfilterToPosEvent(PositionEvent posEvent, eventFilter eFilter) throws ParseException {
+        PositionFilteringResult positionFilteringResult = eFilter.process(posEvent);
+        boolean posEventMeetsFilterConditions = !positionFilteringResult.hasBlockedEvent();
+        if(posEventMeetsFilterConditions) {
+            LOG.info(eFilter.getMonitoringTaskId() + "-EventFilter accepted the position");
+        }
+        return positionFilteringResult;
+        /*
+            posEvent = createAndAppendZoneDescriptors(posEvent, filteringResult);
+
+
+            if (allNotificationsAreEntryNotifications(posEvent)){
+                // hier feststellen ob alle matchingZones EntryNotifications sind
+                entryNotifications.add(Tuples.of(posEvent, eFilter.getMonitoringTaskId(), ENTRY_NOTIFICATION_TYPE, eFilter.getSerializationType())); // note: EntryNotifications are sent after that all ExitNotifications have been sent
+                // updateZoneAssociations(eFilter, posEvent);
+            }else {
+                SimpleSceneIntegration.receiveMessage(posEvent, eFilter.getMonitoringTaskId(), UNDEFINED_TYPE, eFilter.getSerializationType());
+            }
+        }
+        return filteringResult;
+
+        else if (isExitNotification(posEvent, eFilter)){
+            disassociateAgentFromZone(eFilter.getFilterConditionConfig().getPositionConditionCellId(), posEvent.getLObjectId());
+            SimpleSceneIntegration.receiveMessage(posEvent, eFilter.getMonitoringTaskId(), EXIT_NOTIFICATION_TYPE, eFilter.getSerializationType()); // note: ExitNotifications are sent immediately
+        */
+        }
+
+    private static void updateZoneAssociation(String zoneId, PositionEvent posEvent) {
+        String agentId = DataServices.getAgentForLocalizableObject(posEvent.getLObjectId()).getId();
+        associateAgentWithZone(zoneId, agentId);
+    }
+
+    /**
+     *     assumption: An object has been found to be located outside of a zone whose id is zoneId.
+     *     This function determines whether it just exited from that zone.
+     * @param positionFilteringResult
+     * @param zoneId
+     * @return
+     */
+    private static boolean isExitNotification(PositionFilteringResult positionFilteringResult, String zoneId) {
+        PositionEvent posEvent = positionFilteringResult.getPosEvent();
+        String agentId = DataServices.getAgentForLocalizableObject(posEvent.getLObjectId()).getId();
+        if(null == zoneId) return false;
+        return isLocatedInsideZone(zoneId, agentId);
+    }
+
+    /**
+     * Assumption: zoneId is the id of a zone that the position (contained in filteringResult)
+     * is actually located in.
+     * @param positionFilteringResult
+     * @param zoneId
+     * @return
+     */
+    private static boolean isEntryNotification(PositionFilteringResult positionFilteringResult, String zoneId) {
+        PositionEvent posEvent = positionFilteringResult.getPosEvent();
+        String agentId = DataServices.getAgentForLocalizableObject(posEvent.getLObjectId()).getId();
+        LOG.info("zoneId: " + zoneId + "; agentId: " + agentId);
+        if(null == zoneId) return false;
+        return !isLocatedInsideZone(zoneId, agentId); // if the agent was not inside this zone before, it has just entered the zone
+    }
+
+    private static boolean isLocatedInsideZone(String zoneId, String agentId) {
+        List<String> agentsInsideZone = Optional.ofNullable(zonePopulation.get(zoneId)).orElse(new LinkedList<>());
+        return agentsInsideZone.contains(agentId);
+    }
+
+    private static void associateAgentWithZone(String zoneId, String agentId) {
+        if(zonePopulation.keySet().contains(zoneId)){
+            if (! zonePopulation.get(zoneId).contains(agentId)){
+                zonePopulation.get(zoneId).add(agentId);
+            }
+        }else{
+            zonePopulation.put(zoneId, new LinkedList<String>(Arrays.asList(agentId)));
+        }
+    }
+
+    private static void disassociateAgentFromZone(String zoneId, String agentId) {
+        if(zonePopulation.keySet().contains(zoneId)){
+            while(zonePopulation.get(zoneId).remove(agentId)); // remove all occurences
+        }else{
+            LOG.warn("AgentId cannot be removed as there are currently no AgentIds associated to the zone");
+        }
     }
 }
+
diff --git a/src/main/java/ipos/project/devkit/eca/Action.java b/src/main/java/ipos/project/devkit/eca/Action.java
new file mode 100644
index 0000000000000000000000000000000000000000..472c70f8ce07d2fc6838343c8780540db84e7a56
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/Action.java
@@ -0,0 +1,7 @@
+package ipos.project.devkit.eca;
+
+public interface Action {
+
+    public void execute();
+
+}
diff --git a/src/main/java/ipos/project/devkit/eca/CEFResult.java b/src/main/java/ipos/project/devkit/eca/CEFResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..9273fec85e98d45298c092813cd5a17f5e72831c
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/CEFResult.java
@@ -0,0 +1,28 @@
+package ipos.project.devkit.eca;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
+
+public class CEFResult {
+
+    PositionEvent posEvent;
+    boolean posEventIsInOrder;
+    boolean posEventTriggeredStateChange;
+
+    public CEFResult(PositionEvent posEvent, boolean posEventIsInOrder, boolean posEventTriggeredStateChange) {
+        this.posEvent = posEvent;
+        this.posEventIsInOrder = posEventIsInOrder;
+        this.posEventTriggeredStateChange = posEventTriggeredStateChange;
+    }
+
+    public PositionEvent getPosEvent() {
+        return posEvent;
+    }
+
+    public boolean isPosEventIsInOrder() {
+        return posEventIsInOrder;
+    }
+
+    public boolean isPosEventTriggeredStateChange() {
+        return posEventTriggeredStateChange;
+    }
+}
diff --git a/src/main/java/ipos/project/devkit/eca/Condition.java b/src/main/java/ipos/project/devkit/eca/Condition.java
new file mode 100644
index 0000000000000000000000000000000000000000..4f0ca3a47d2c902921fad9b3c491b31b03e62c96
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/Condition.java
@@ -0,0 +1,10 @@
+package ipos.project.devkit.eca;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
+
+public interface Condition {
+
+    Action evaluate(IposPositionEvent positionEvent);
+
+}
diff --git a/src/main/java/ipos/project/devkit/eca/ECARule.java b/src/main/java/ipos/project/devkit/eca/ECARule.java
new file mode 100644
index 0000000000000000000000000000000000000000..89b6999484226b9a104ab4b1b3cf71f486126f2e
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/ECARule.java
@@ -0,0 +1,31 @@
+package ipos.project.devkit.eca;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
+import ipos.project.devkit.iposext.IPosArguments;
+
+public abstract class ECARule {
+
+    protected Condition condition;
+
+    /**
+     * This function implements the overall behaviour of each ECARule:
+     * Determine applicability of the PositionEvent ->
+     * determine whether the PositionEvent fulfills the current condition and can be accepted ->
+     * translate the PositionEvent into an action and execute it.
+     * Remark: If the PositionEvent can not be accepted a no-operation action is created and executed.
+     * The behaviour of the ECARule at runtime depends on the implementation of the Condition- and
+     * Action-interface
+     * @param posEvent
+     */
+    public void apply(IposPositionEvent posEvent){
+        if (isApplicable(posEvent)){
+            Action action = condition.evaluate(posEvent);
+            action.execute();
+        }
+    }
+
+    public abstract boolean isApplicable(IposPositionEvent posEvent);
+
+    public abstract void configure(IPosArguments.IPosEcaConfig ecaConfig);
+}
diff --git a/src/main/java/ipos/project/devkit/eca/NoOpAction.java b/src/main/java/ipos/project/devkit/eca/NoOpAction.java
new file mode 100644
index 0000000000000000000000000000000000000000..ea1deaf31f338e509cd77b0fb20a1f3404ee7517
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/NoOpAction.java
@@ -0,0 +1,19 @@
+package ipos.project.devkit.eca;
+
+import org.apache.logging.log4j.LogManager;
+
+public class NoOpAction implements Action{
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    String message = "";
+    public NoOpAction() {
+    }
+
+    public NoOpAction(String message){
+        this.message = message;
+    }
+
+    @Override
+    public void execute() {
+        LOG.info(this.message);
+    }
+}
diff --git a/src/main/java/ipos/project/devkit/eca/zseq/AbstractZoneSequenceCondition.java b/src/main/java/ipos/project/devkit/eca/zseq/AbstractZoneSequenceCondition.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f3623bad65ab00f69c2a47661fc34863795f155
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/zseq/AbstractZoneSequenceCondition.java
@@ -0,0 +1,62 @@
+package ipos.project.devkit.eca.zseq;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+import ipos.project.devkit.eca.Action;
+import ipos.project.devkit.eca.Condition;
+import ipos.project.devkit.eca.NoOpAction;
+import org.apache.logging.log4j.LogManager;
+
+public abstract class AbstractZoneSequenceCondition implements Condition {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    protected ZoneSequenceStage currentStage;
+
+    @Override
+    public Action evaluate(IposPositionEvent positionEvent) {
+        if (positionEvent.getZoneDescriptors().size() != 1){
+            return new NoOpAction("OP: Error: Positionevent does not contain a single zone descriptor.");
+        }
+        // assumption: positionEvent is located in exactly one zone (checked in ZoneSequenceRule.isApplicable())
+        ZoneDescriptor zoneDescriptor = positionEvent.getZoneDescriptors().get(0);
+        if (causesStageChange(zoneDescriptor)){
+            logStageChange();
+            StageChangeAction scAction = evaluateStageChangeIntoAction(zoneDescriptor);
+            setCurrentStage(currentStage.getNextStage());
+            return scAction;
+        }else{
+            updateCurrentQuantity();
+            return new NoOpAction(createNoStageChangeLogMsg());
+        }
+    }
+
+    private String createNoStageChangeLogMsg() {
+        String currentZoneId = currentStage.getEventDescriptors().get(0).getZoneId();
+        int currentQuantity = currentStage.getEventDescriptors().get(0).getQuantity();
+        String logMsg = "OP: Event did not cause a stage change. Current stage expects zone " + currentZoneId + ". This was the " + currentQuantity + " event that did not cause a stage change.";
+        return logMsg;
+    }
+
+    private void logStageChange() {
+        String currentZone = currentStage.getEventDescriptors().get(0).getZoneId();
+        String nextZone = currentStage.getNextStage().getEventDescriptors().get(0).getZoneId();
+        LOG.info("OP: Event causes a stage change. Zone of current stage: " + currentZone + ". Zone of next stage: " + nextZone);
+    }
+
+    private void updateCurrentQuantity() {
+        int currentQuantity = currentStage.getEventDescriptors().get(0).getQuantity();
+        currentStage.getEventDescriptors().get(0).setQuantity(currentQuantity + 1);
+    }
+
+    public abstract StageChangeAction evaluateStageChangeIntoAction(ZoneDescriptor zoneDescriptor);
+
+    public abstract boolean causesStageChange(ZoneDescriptor zoneDescriptor);
+
+    public ZoneSequenceStage getCurrentStage() {
+        return currentStage;
+    }
+    public void setCurrentStage(ZoneSequenceStage nextStage) {
+        this.currentStage = nextStage;
+    }
+
+}
diff --git a/src/main/java/ipos/project/devkit/eca/zseq/StageChangeAction.java b/src/main/java/ipos/project/devkit/eca/zseq/StageChangeAction.java
new file mode 100644
index 0000000000000000000000000000000000000000..364f185ae1e879aaa22d1d3750ce7a1c2e8b01c9
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/zseq/StageChangeAction.java
@@ -0,0 +1,8 @@
+package ipos.project.devkit.eca.zseq;
+
+import ipos.project.devkit.eca.Action;
+
+public abstract class StageChangeAction implements Action {
+    @Override
+    public abstract void execute();
+}
diff --git a/src/main/java/ipos/project/devkit/eca/zseq/StageChangeLogAction.java b/src/main/java/ipos/project/devkit/eca/zseq/StageChangeLogAction.java
new file mode 100644
index 0000000000000000000000000000000000000000..821e9aeb4b1a0222922dc9de19170450425e80cc
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/zseq/StageChangeLogAction.java
@@ -0,0 +1,28 @@
+package ipos.project.devkit.eca.zseq;
+
+import org.apache.logging.log4j.LogManager;
+
+public class StageChangeLogAction extends StageChangeAction{
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private String currentZoneId;
+    private String nextZoneId;
+
+    public StageChangeLogAction(String currentZoneId, String nextZoneId) {
+        this.currentZoneId = currentZoneId;
+        this.nextZoneId = nextZoneId;
+    }
+
+    @Override
+    public void execute() {
+        LOG.info("Stage change occured: " + currentZoneId + " -> " + nextZoneId);
+    }
+
+    public String getCurrentZoneId() {
+        return currentZoneId;
+    }
+
+    public String getNextZoneId() {
+        return nextZoneId;
+    }
+}
diff --git a/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceArgs.java b/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceArgs.java
new file mode 100644
index 0000000000000000000000000000000000000000..044065a13071fe815b48954cf20e676d5e1aa1ae
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceArgs.java
@@ -0,0 +1,29 @@
+package ipos.project.devkit.eca.zseq;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+import ipos.project.devkit.eca.Condition;
+import ipos.project.devkit.iposext.IPosArguments;
+
+import java.util.List;
+
+public class ZoneSequenceArgs {
+
+    public static class ZoneSequenceConfigure implements IPosArguments.IPosEcaConfig{
+        private List<ZoneDescriptor> zoneDescriptors;
+        private Condition condition;
+
+        public ZoneSequenceConfigure(List<ZoneDescriptor> zoneDescriptors, Condition condition) {
+            this.zoneDescriptors = zoneDescriptors;
+            this.condition = condition;
+        }
+
+        public List<ZoneDescriptor> getZoneDescriptors() {
+            return zoneDescriptors;
+        }
+        public Condition getCondition() {
+            return condition;
+        }
+
+    }
+
+}
diff --git a/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceCondition.java b/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceCondition.java
new file mode 100644
index 0000000000000000000000000000000000000000..0982cbe784f8b09501b28062533276ba3f1c8798
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceCondition.java
@@ -0,0 +1,49 @@
+package ipos.project.devkit.eca.zseq;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+import ipos.project.devkit.eca.NoOpAction;
+import org.apache.logging.log4j.LogManager;
+
+public class ZoneSequenceCondition extends AbstractZoneSequenceCondition{
+    String recentZoneId = "";
+
+    @Override
+    public String toString() {
+        String strRepresentation = "";
+        ZoneSequenceStage firstStage = this.getCurrentStage();
+        ZoneSequenceStage currentStage = firstStage;
+        while(currentStage != null) {
+            String currentZoneId = currentStage.getEventDescriptors().get(0).getZoneId();
+            strRepresentation += " -> " + currentZoneId;
+            currentStage = currentStage.getNextStage();
+        }
+        return "expected zone sequence: " + strRepresentation.substring(4);
+    }
+
+    @Override
+    public StageChangeAction evaluateStageChangeIntoAction(ZoneDescriptor zoneDescriptor) {
+        String currentZoneId = getCurrentStage().getEventDescriptors().get(0).getZoneId();
+        String nextZoneId = getCurrentStage().getNextStage().getEventDescriptors().get(0).getZoneId();
+        return new StageChangeLogAction(currentZoneId, nextZoneId);
+    }
+
+    @Override
+    public boolean causesStageChange(ZoneDescriptor zoneDescriptor) {
+        boolean zoneChange = eventsZoneHasChanged(zoneDescriptor); // there is no stage-change if an out-of-order event is repeated
+        if (zoneChange){
+            this.recentZoneId = zoneDescriptor.getZoneId();
+        }
+        return zoneChange;
+/*
+        String eventZoneId = zoneDescriptor.getZoneId();
+        String currentStageZoneId = currentStage.getEventDescriptors().get(0).getZoneId(); // Function ZoneSequenceRule::transformIntoStage ensures that there is at most one EventDescriptor contained in a stage
+        return !eventZoneId.equals(currentStageZoneId);
+
+ */
+    }
+
+    private boolean eventsZoneHasChanged(ZoneDescriptor zoneDescriptor) {
+        String eventZoneId = zoneDescriptor.getZoneId();
+        return !eventZoneId.equals(this.recentZoneId);
+    }
+}
diff --git a/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceRule.java b/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceRule.java
new file mode 100644
index 0000000000000000000000000000000000000000..0849b418cdbf054592d77f0e9dc9ffb25c45e2fa
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceRule.java
@@ -0,0 +1,85 @@
+package ipos.project.devkit.eca.zseq;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+import ipos.project.devkit.eca.ECARule;
+import ipos.project.devkit.iposext.IPosArguments;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+public abstract class ZoneSequenceRule extends ECARule {
+
+    protected ZoneSequenceCondition zsCondition;
+
+    @Override
+    public boolean isApplicable(IposPositionEvent posEvent) {
+        List<ZoneDescriptor> zones = posEvent.getZoneDescriptors();
+        return zones.size() == 1;
+    }
+
+    @Override
+    public void configure(IPosArguments.IPosEcaConfig iposEcaConfig) {
+        ZoneSequenceArgs.ZoneSequenceConfigure zsConfigure = (ZoneSequenceArgs.ZoneSequenceConfigure) iposEcaConfig;
+        configure(zsConfigure);
+    }
+
+        /**
+         * Creates a sequence of ZoneSequenceStages for a list of zoneDescriptors.
+         * Each ZoneSequenceStage encapsulates a single zone with a quantity. The sequence
+         * encodes a pattern for a sequence of positionEvents. The pattern is met if the
+         * sequence of positionEvents and their zoneAssociations matches the sequence of
+         * ZoneSequenceStages and their respective zone associations.
+         * @param zsConfigure
+         */
+    public void configure(ZoneSequenceArgs.ZoneSequenceConfigure zsConfigure){
+        List<ZoneDescriptor> zoneDescriptors = zsConfigure.getZoneDescriptors();
+        // this.condition = new ZoneSequenceCondition();
+        zsCondition = (ZoneSequenceCondition) zsConfigure.getCondition();
+        List<ZoneSequenceStage> zsStages = mapZoneDescriptorsToStages(zoneDescriptors);
+        linkSuccessiveStages(zsStages);
+        initializeCondition(zsStages);
+        /*
+        ZoneSequenceStage initialStage = new ZoneSequenceStage();
+        ZoneSequenceStage loopStage = initialStage;
+        for (ZoneDescriptor zoneDescriptor : zoneDescriptors){
+            loopStage.addEventDescriptor(zoneDescriptor.getZoneId(), 0);
+            ZoneSequenceStage nextLoopStage = new ZoneSequenceStage();
+            loopStage.setNextStage(nextLoopStage);
+            loopStage = nextLoopStage;
+        }
+        zsCondition.setCurrentStage(initialStage);
+*/
+    }
+
+    private void initializeCondition(List<ZoneSequenceStage> zsStages) {
+        ZoneSequenceStage initialStage = new ZoneSequenceStage();
+        initialStage.addEventDescriptor("Start", 0);
+        initialStage.setNextStage(zsStages.get(0));
+        zsCondition.setCurrentStage(initialStage);
+        this.condition = zsCondition;
+    }
+
+    private void linkSuccessiveStages(List<ZoneSequenceStage> zsStages) {
+        for (int i = 0; i < zsStages.size()-1 ; i++){
+            ZoneSequenceStage stage = zsStages.get(i);
+            ZoneSequenceStage successor = zsStages.get(i+1);
+            stage.setNextStage(successor);
+        }
+    }
+
+    private List<ZoneSequenceStage> mapZoneDescriptorsToStages(List<ZoneDescriptor> zoneDescriptors) {
+        List<ZoneSequenceStage> zsStages = zoneDescriptors.stream()
+                .map(ZoneSequenceRule::transformIntoStage)
+                .collect(Collectors.toList());
+        return zsStages;
+    }
+
+    private static ZoneSequenceStage transformIntoStage(ZoneDescriptor zoneDescriptor){
+        ZoneSequenceStage zsStage = new ZoneSequenceStage();
+        zsStage.addEventDescriptor(zoneDescriptor.getZoneId(), 0);
+        return zsStage;
+    }
+
+}
diff --git a/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceStage.java b/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceStage.java
new file mode 100644
index 0000000000000000000000000000000000000000..611c8d9398186684df1371cbc4301735f4503915
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/eca/zseq/ZoneSequenceStage.java
@@ -0,0 +1,58 @@
+package ipos.project.devkit.eca.zseq;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class ZoneSequenceStage {
+
+    ZoneSequenceStage nextStage;
+    List<EventDescriptor> eventDescriptors = new LinkedList<>();
+
+    public List<EventDescriptor> getEventDescriptors() {
+        return eventDescriptors;
+    }
+
+    public void addEventDescriptor(String zoneId, int quantity) {
+        this.eventDescriptors.add(new EventDescriptor(zoneId, quantity));
+    }
+
+    public ZoneSequenceStage getNextStage() {
+        return nextStage;
+    }
+
+    public void setNextStage(ZoneSequenceStage nextStage) {
+        this.nextStage = nextStage;
+    }
+
+
+    public class EventDescriptor {
+        String zoneId;
+        int quantity;
+
+        public EventDescriptor(String zoneId, int quantity) {
+            this.zoneId = zoneId;
+            this.quantity = quantity;
+        }
+
+
+        public String getZoneId() {
+            return zoneId;
+        }
+
+        public void setZoneId(String zoneId) {
+            this.zoneId = zoneId;
+        }
+
+        public int getQuantity() {
+            return quantity;
+        }
+
+        public void setQuantity(int quantity) {
+            this.quantity = quantity;
+        }
+
+    }
+
+}
diff --git a/src/main/java/ipos/project/devkit/iposext/IPosArguments.java b/src/main/java/ipos/project/devkit/iposext/IPosArguments.java
new file mode 100644
index 0000000000000000000000000000000000000000..6c7cdf9528c7b420c475b7f7d55da9fc4728d1cb
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/iposext/IPosArguments.java
@@ -0,0 +1,15 @@
+package ipos.project.devkit.iposext;
+
+public interface IPosArguments {
+
+    public interface IPosConfigData {
+    }
+
+    public interface HandlePosEventConf {
+
+    }
+
+    public interface IPosEcaConfig {
+
+    }
+}
diff --git a/src/main/java/ipos/project/devkit/iposext/IPosExtension.java b/src/main/java/ipos/project/devkit/iposext/IPosExtension.java
new file mode 100644
index 0000000000000000000000000000000000000000..ed4be3402512fc1bb74c9fc92790ead23da15cb2
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/iposext/IPosExtension.java
@@ -0,0 +1,54 @@
+package ipos.project.devkit.iposext;
+
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent;
+import ipos.project.UseCaseController.PositionMonitoring;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+
+import java.util.Objects;
+
+abstract public class IPosExtension {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    public ExternalPubServiceImpl mqttService;
+
+    public void setMqttService(ExternalPubServiceImpl mqttService_){
+        mqttService = mqttService_;
+    }
+
+    public void configureIpos(IPosArguments.IPosConfigData iposConfigData) {
+        try{
+            SimpleScene.IposConfigWrapper configWrapper = Objects.requireNonNull(prepareConfigWrapper(iposConfigData), "Warning: An attempt to configure the IPos-IPS has failed");
+            sendConfigWrapperToIpos(configWrapper);
+        } catch(NullPointerException e){
+            LOG.info(e.getMessage());
+            return;
+        }
+    }
+
+    private void sendConfigWrapperToIpos(SimpleScene.IposConfigWrapper proto_configWrapper) {
+        String json_configWrapper = ProtoJsonMap.toJson(proto_configWrapper);
+        if (mqttService == null){
+            throw new RuntimeException("Could not send configuration data to IPos-Framework as MQTT-service was not properly initialized.");
+        }
+        mqttService.publish(PositionMonitoring.TOPIC_ConfigWrapper, json_configWrapper, 0, false);
+    }
+
+    public abstract void handlePositionEvent(IposPositionEvent posEvent);
+    public abstract void handlePositionEvent(IposPositionEvent posEvent, IPosArguments.HandlePosEventConf posEventConf);
+
+    public abstract void handleRawdataEvent(IPosRawdataEvent iPosRawdataEvent);
+
+    public abstract SimpleScene.IposConfigWrapper prepareConfigWrapper(IPosArguments.IPosConfigData iposConfigData);
+
+    /*
+    private void useTransformer(){
+        ...
+        IPosTransformer.MonReqTransformer<SimpleScene.IposMonitoringRequest> monReq2protoTransformer = new IPos2protoTransformer.MonReq2ProtoTransformer();
+        //monReq2protoTransformer.transformMonReq();
+    }
+    */
+}
diff --git a/src/main/java/ipos/project/devkit/trans/IPos2protoTransformer.java b/src/main/java/ipos/project/devkit/trans/IPos2protoTransformer.java
new file mode 100644
index 0000000000000000000000000000000000000000..b77736705830a036f4aa84a41cdce607e9e76fc6
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/trans/IPos2protoTransformer.java
@@ -0,0 +1,117 @@
+package ipos.project.devkit.trans;
+
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+import ipos.project.SensorValueIntegration.Service.GenericSensorTransformer;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class IPos2protoTransformer implements IPosTransformer {
+
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+    private static IPosDevKitFactory devKitFactory = IPosDevKitFactory.eINSTANCE;
+
+    public static ReferenceSystem createReferenceSystem(String name, String id, Placing origin){
+        ReferenceSystem refSystem = modelFactory.createReferenceSystem();
+        refSystem.setName(name);
+        refSystem.setId(id);
+        refSystem.setOrigin(origin);
+        return refSystem;
+    }
+
+    public static Position createPosition(Point3D point3D, Float accuracy, ReferenceSystem refSystem){
+        Position position = modelFactory.createPosition();
+        position.setPoint(point3D);
+        Gaussian accrcy = modelFactory.createGaussian();
+        accrcy.setConfidenceInterval(accuracy);
+        position.setAccuracy(accrcy);
+        position.setReferenceSystem(refSystem);
+        return position;
+    }
+
+    public static Point3D createPoint3D(float x, float y, float z){
+        Point3D point3D = modelFactory.createPoint3D();
+        point3D.setX(x);
+        point3D.setY(y);
+        point3D.setZ(z);
+        return point3D;
+    }
+
+    public static Quaternion createOrientation(float x, float y, float z, float w){
+        Quaternion quaternion = modelFactory.createQuaternion();
+        quaternion.setX(x);
+        quaternion.setY(y);
+        quaternion.setZ(z);
+        quaternion.setW(w);
+        return quaternion;
+    }
+
+    public static Placing createPlacing(Position position, Orientation orientation){
+        Placing placing = modelFactory.createPlacing();
+        placing.setPosition(position);
+        placing.setOrientation(orientation);
+        return placing;
+    }
+
+    public static class MonReq2ProtoTransformer implements IPosTransformer.MonReqTransformer<SimpleScene.IposMonitoringRequest>{
+
+        @Override
+        public SimpleScene.IposMonitoringRequest transformMonReq(MonitoringRequest monitoringRequest) {
+            return null;
+        }
+    }
+
+    public static List<IposPositionEvent> transformToInternal(SimpleScene.IposPositionEvent proto_iposPositionEvent){
+        List<IposPositionEvent> iposPositionEvents = proto_iposPositionEvent.getObjectsList().stream()
+                .map(IPos2protoTransformer::transformProtoObjectToInternalPosEvent)
+                .collect(Collectors.toList());
+        return iposPositionEvents;
+    }
+
+    public static ZoneDescriptor transformToInternal(SimpleScene.IposZoneDescriptor proto_zoneDescriptor){
+        ZoneDescriptor zoneDescriptor = modelFactory.createZoneDescriptor();
+        zoneDescriptor.setZoneId(proto_zoneDescriptor.getZoneId());
+        zoneDescriptor.setNotificationType(proto_zoneDescriptor.getNotificationType());
+        return zoneDescriptor;
+    }
+
+    private static IposPositionEvent transformProtoObjectToInternalPosEvent(SimpleScene.IposObject proto_object) {
+        IposPositionEvent iposPositionEvent = devKitFactory.createIposPositionEvent();
+        iposPositionEvent.setAgentId(proto_object.getId());
+        iposPositionEvent.setSensorId(proto_object.getSensorId());
+        iposPositionEvent.setType(proto_object.getType());
+        iposPositionEvent.setSensorType(proto_object.getSensorType());
+        iposPositionEvent.setPosition(
+                createPosition(
+                        IPos2protoTransformer.createPoint3D(
+                                proto_object.getPosition().getPoint().getX(),
+                                proto_object.getPosition().getPoint().getY(),
+                                proto_object.getPosition().getPoint().getZ()
+                        ),
+                        proto_object.getPosition().getAccuracy(),
+                        IPos2protoTransformer.createReferenceSystem("ROOT", "ROOT", null)
+
+                )
+        );
+        iposPositionEvent.setOrientation(
+                IPos2protoTransformer.createOrientation(
+                        proto_object.getOrientation().getX(),
+                        proto_object.getOrientation().getY(),
+                        proto_object.getOrientation().getZ(),
+                        proto_object.getOrientation().getW()
+                )
+        );
+        iposPositionEvent.setLastPosUpdate(proto_object.getLastPosUpdate());
+        List<ZoneDescriptor> zoneDescriptors = proto_object.getZoneDescriptorsList().stream()
+                .map(IPos2protoTransformer::transformToInternal)
+                .collect(Collectors.toList());
+        iposPositionEvent.getZoneDescriptors().addAll(zoneDescriptors);
+        return iposPositionEvent;
+    }
+
+}
diff --git a/src/main/java/ipos/project/devkit/trans/IPosTransformer.java b/src/main/java/ipos/project/devkit/trans/IPosTransformer.java
new file mode 100644
index 0000000000000000000000000000000000000000..729519a9203ba10223e1154b5c469cd397cbb6ee
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/trans/IPosTransformer.java
@@ -0,0 +1,11 @@
+package ipos.project.devkit.trans;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.MonitoringRequest;
+
+public interface IPosTransformer {
+
+    interface MonReqTransformer<K> {
+        K transformMonReq(MonitoringRequest monitoringRequest);
+    }
+
+}
diff --git a/src/main/java/ipos/project/devkit/utility/ExternalPubServiceImpl.java b/src/main/java/ipos/project/devkit/utility/ExternalPubServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..2da127cfdc9f6414c733bdbb1eaf3326c560da96
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/utility/ExternalPubServiceImpl.java
@@ -0,0 +1,58 @@
+package ipos.project.devkit.utility;
+
+import com.google.protobuf.AbstractMessageLite;
+import ipos.project.DataModellntegration.SimpleSceneIntegration.service.ExternalPubService;
+import org.eclipse.paho.client.mqttv3.MqttAsyncClient;
+import org.eclipse.paho.client.mqttv3.MqttException;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+@Service
+public class ExternalPubServiceImpl implements ExternalPubService {
+
+    private final Logger LOG = LoggerFactory.getLogger(getClass());
+    private final MqttAsyncClient mqttClient;
+
+    @Autowired
+    public ExternalPubServiceImpl(MqttAsyncClient mqttClient) {
+        this.mqttClient = mqttClient;
+    }
+
+    public void publish(final String topic, final String msg , int qos, boolean retained) {
+        MqttMessage mqttMessage = new MqttMessage();
+        mqttMessage.setPayload(msg.getBytes());
+        mqttMessage.setQos(qos);
+        mqttMessage.setRetained(retained);
+        publish(topic, mqttMessage);
+    }
+
+    public void publish(final String topic, final MqttMessage mqttMessage){
+        try {
+            mqttClient.publish(topic, mqttMessage);
+        } catch (MqttException e) {
+            LOG.error("MQTT-message could not be published");
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public MqttMessage createMqttMsg(AbstractMessageLite protoMessage, int qos, boolean retained) {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        try {
+            protoMessage.writeTo(baos);
+        } catch (IOException e) {
+            LOG.error("Protobuf-message could not be serialized");
+            e.printStackTrace();
+        }
+        MqttMessage mqttMessage = new MqttMessage(baos.toByteArray());
+        mqttMessage.setQos(qos);
+        mqttMessage.setRetained(retained);
+        return mqttMessage;
+    }
+}
diff --git a/src/main/java/ipos/project/devkit/utility/OtherUtility.java b/src/main/java/ipos/project/devkit/utility/OtherUtility.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb1171e69cb126dfa649902ca11fac3057576ba1
--- /dev/null
+++ b/src/main/java/ipos/project/devkit/utility/OtherUtility.java
@@ -0,0 +1,73 @@
+package ipos.project.devkit.utility;
+
+import com.google.protobuf.AbstractMessageLite;
+import com.google.protobuf.MessageOrBuilder;
+import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneIntegration;
+import ipos.project.MainApp;
+import ipos.project.SensorValueIntegration.GenericSensorValueProcessor;
+import ipos.project.UseCaseController.PositionMonitoring;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+
+public class OtherUtility {
+    public static final String KEY_EXTRACTED_ATTRIBUTE_NAME = "name";
+    public static final String KEY_EXTRACTED_ATTRIBUTE_TYPE = "type";
+    public static final String KEY_EXTRACTED_ATTRIBUTE_VALUE = "data";
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    public static List<String> readLines(File initFile) {
+        List<String> lines = new ArrayList<>();
+        try(BufferedReader br = new BufferedReader(new FileReader(initFile))) { // br is automatically closed at the end of try-scope
+            for (String line; (line = br.readLine()) != null; ){
+                lines.add(line);
+            }
+        } catch (IOException e) {
+            LOG.error("Error while reading the text file: ");
+            e.printStackTrace();
+        }
+        return lines;
+    }
+
+    public static void publishRespectingSerializationType(String topic, String serializationType, AbstractMessageLite protoMsg){
+        MqttMessage mqttMessage = SimpleSceneIntegration.mqttService.createMqttMsg(protoMsg, 0, false);
+        String jsonString = ProtoJsonMap.toJson((MessageOrBuilder) protoMsg);
+
+        // publishes protobuf over MQTT
+        if (PositionMonitoring.PROTOBUF_SERIALIZATION_TYPE.equals(serializationType)){
+            SimpleSceneIntegration.mqttService.publish(topic, mqttMessage);
+            LOG.info("publishing protobuf mqttMessage of type " + protoMsg.getClass().getName() + ". JSON-representation:" + jsonString + " on topic: " + topic);
+        }
+
+        // publishes JSON over MQTT
+        if (PositionMonitoring.JSON_SERIALIZATION_TYPE.equals(serializationType)){
+            SimpleSceneIntegration.mqttService.publish(topic, jsonString, 0, false);
+            LOG.info("publishing JSON mqttMessage of type " + protoMsg.getClass().getName() + ":" + jsonString + " on topic: " + topic);
+        }
+    }
+
+    public static void waitUntilUserRequestsReadingNextLine(Scanner scanner) {
+        while (!MainApp.READY_TO_READ_NEXT_LINE){
+            try {
+                Thread.sleep(500);
+                if(scanner.hasNext()) {
+                    String str = scanner.nextLine();
+                    switch(str){
+                        case MainApp.COMMAND_READY_FOR_NEXT_LINE: MainApp.READY_TO_READ_NEXT_LINE = true; break;
+                        default: LOG.info("Waiting for permission to read next line");
+                    }
+                }
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        MainApp.READY_TO_READ_NEXT_LINE = false; // make sure that we will also wait before reading the line that comes after the current one
+    }
+}
diff --git a/src/main/java/ipos/project/mapper/ProtoJsonMap.java b/src/main/java/ipos/project/devkit/utility/ProtoJsonMap.java
similarity index 96%
rename from src/main/java/ipos/project/mapper/ProtoJsonMap.java
rename to src/main/java/ipos/project/devkit/utility/ProtoJsonMap.java
index 00c924f85c6b0b7626e16a32f8dabd0e9e69cc7b..6572ac807f7cabff88fd0925b01f0e5450a9f4dd 100644
--- a/src/main/java/ipos/project/mapper/ProtoJsonMap.java
+++ b/src/main/java/ipos/project/devkit/utility/ProtoJsonMap.java
@@ -1,6 +1,5 @@
-package ipos.project.mapper;
+package ipos.project.devkit.utility;
 
-import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import com.google.protobuf.AbstractMessage.Builder;
 import com.google.protobuf.InvalidProtocolBufferException;
diff --git a/src/main/java/ipos/project/entity/IWorldModelAccess.java b/src/main/java/ipos/project/entity/IWorldModelAccess.java
new file mode 100644
index 0000000000000000000000000000000000000000..400ed55769468913cd6534199ffb2b6e50e836bd
--- /dev/null
+++ b/src/main/java/ipos/project/entity/IWorldModelAccess.java
@@ -0,0 +1,30 @@
+package ipos.project.entity;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+
+import java.util.List;
+
+public interface IWorldModelAccess {
+
+    /**
+     * Shall return empty list there are currently no objects of the respective kind stored in the world model
+     * @return
+     */
+    public List<Agent> getAllAgents();
+
+    public List<ReferenceSystem> getAllRefSystems();
+
+    void removeAgent(String id);
+
+    void addAgent(Agent agent_merged);
+
+    List<Zone> getAllZones();
+
+    void addZone(Zone zone_input);
+
+    void addRefSystem(ReferenceSystem refSystem_input);
+
+    List<POI> getAllPois();
+
+    void addPoi(POI poi_input);
+}
diff --git a/src/main/java/ipos/project/entity/LocalObjectWorldModel.java b/src/main/java/ipos/project/entity/LocalObjectWorldModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..8e0dea14861306280ce3bdf7fea1fe56816e6ef4
--- /dev/null
+++ b/src/main/java/ipos/project/entity/LocalObjectWorldModel.java
@@ -0,0 +1,86 @@
+package ipos.project.entity;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
+
+import java.util.List;
+
+public class LocalObjectWorldModel implements IWorldModelAccess {
+
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+    WorldModel wm;
+
+    public LocalObjectWorldModel(){
+        wm = modelFactory.createWorldModel();
+        wm.getZoneMap().add(modelFactory.createZoneMap()); // zonemaps are currently not supported
+    }
+
+    @Override
+    public List<Agent> getAllAgents() {
+        return wm.getAgent();
+    }
+
+    @Override
+    public List<ReferenceSystem> getAllRefSystems() {
+        return wm.getReferenceSystem();
+    }
+
+    @Override
+    public void removeAgent(String id) {
+        for (Agent agent : wm.getAgent()){
+            if(agent.getId().equals(id)){
+                wm.getAgent().remove(agent);
+                return;
+            }
+        }
+    }
+
+    /**
+     * Assumption: The calling code made sure that there are currently no agents
+     * with the same id contained in the world model.
+     * @param agent
+     */
+    @Override
+    public void addAgent(Agent agent) {
+        wm.getAgent().add(agent);
+    }
+
+    @Override
+    public List<Zone> getAllZones() {
+        return wm.getZoneMap().get(0).getZone();
+    }
+
+    /**
+     * Assumption: The calling code made sure that there are currently no zones
+     * with the same id contained in the world model.
+     * @param zone
+     */
+    @Override
+    public void addZone(Zone zone) {
+        wm.getZoneMap().get(0).getZone().add(zone);
+    }
+
+    /**
+     * Assumption: The calling code made sure that there are currently no refSystems
+     * with the same id contained in the world model.
+     * @param refSystem
+     */
+    @Override
+    public void addRefSystem(ReferenceSystem refSystem) {
+        wm.getReferenceSystem().add(refSystem);
+    }
+
+    @Override
+    public List<POI> getAllPois() {
+        return wm.getPois();
+    }
+
+    /**
+     * Assumption: The calling code made sure that there are currently no pois
+     * with the same id contained in the world model.
+     * @param poi
+     */
+    @Override
+    public void addPoi(POI poi) {
+        wm.getPois().add(poi);
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPicker.java b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPicker.java
new file mode 100644
index 0000000000000000000000000000000000000000..c230ae96015b829227f56d980ff7dbfc1e651022
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPicker.java
@@ -0,0 +1,103 @@
+package ipos.project.iposextension.orderpicker;
+
+import ipos.models.OFBizOrderpicker;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.*;
+import ipos.project.devkit.iposext.IPosArguments;
+import ipos.project.devkit.iposext.IPosExtension;
+import ipos.project.devkit.utility.OtherUtility;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import ipos.project.iposextension.orderpicker.frontend.FETable;
+import org.apache.logging.log4j.LogManager;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+
+/**
+ * This class coordinates all activities required for verifying that the picker
+ * picks all items in the correct order, i.e., in the order defined in the picklist.
+ * An extension of the IPos-FW, that was specifically created for this usecase, is employed.
+ * For each received picklist a ZoneSequenceRecognition-ComplexEventFilter is created.
+ * This filter is part of this IPos-FW and is used for the verification. Also, the
+ * frontend application is initialized and updated to allow the operator to track the
+ * progress of the picker and detect errors.
+ *
+ * The picklist conforms to the datamodel defined in the open-source ERP-system OFBiz.
+ */
+@Component
+public class OFBizOrderPicker {
+    public static final String OP_MONITORINGREQUEST = "{\"monitoringRequests\": [{\"frameIds\": [\"box_1\", \"box_2\", \"box_3\", \"shipmentBin_1\", \"shipmentBin_2\"], \"monitoringTaskId\": \"" + OFBizOrderPicker.TOPIC_POSITION_EVENT + "\", \"serializationType\": \"json\"}]}";
+    public static final String OP_PICKER_ROLE_TYPE = "PICKER";
+    public static final String TOPIC_POSITION_EVENT = "RobolabMonitoringOPExtension";
+    public static final String TOPIC_FRONTEND = "ipos/client/tableWrapper";
+    public static final String INVENTORYITEM_TYPE_NAME = "inventory";
+    public static final String SHIPMENTBIN_TYPE_NAME = "shipment";
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    static IPosExtension ofbizOpIposExt = new OFBizOrderPickerExt();
+
+    public static ExternalPubServiceImpl mqttService;
+
+    @Autowired
+    public OFBizOrderPicker(ExternalPubServiceImpl mqttService_){
+        mqttService = mqttService_;
+        ofbizOpIposExt.setMqttService(mqttService);
+    }
+
+    /**
+     * The OFBizOrderPicker application is an extension of the IPos-FW. Therefore, initialization relies
+     * on the function "configureIpos", which is provided by the abstract class IPosExtension. Each application-specific
+     * extension of the IPos-FW, i.e., also the OrderPicker extension, has to derive a concrete class from that class.
+     * The OrderPicker extension derives the class ipos.project.iposextension.orderpicker.OFBizOrderPickerExt
+     */
+    public static void initialize(){
+        try {
+            ofbizOpIposExt.configureIpos(new IPosArguments.IPosConfigData() {
+            }); // orderpicker-extension has a prepareConfigWrapper-function that does not need any arguments. We are interested in PositionEvents for all available vessels
+        }catch(RuntimeException e){
+            LOG.info("OP: OFBizOrderPicker-Extension of the IPos-FW could not be initialized. Exception-msg: " + e.getMessage());
+            e.printStackTrace();
+        }
+    }
+
+    /** Function transforms the received picklist into a data format that can be handled
+     * by the frontend-application (FETable) and publishes the picklist to the
+     * frontend-application. Moreover, a filter (ECARule) is set up for accepting the
+     * PositionEvents that are sent from the IPos-FW. The information that is relevant
+     * for the filter is the zone that the position belongs to.
+     *
+     * @param picklist
+     */
+   public static void handlePicklist(Picklist picklist){
+        try {
+            FETable feTable = OFBizOrderPickerTrans.transformPicklistIntoFeTable(picklist);
+            publishFeTableToFeApp(feTable);
+            ((OFBizOrderPickerExt) ofbizOpIposExt).setupECARule(picklist);
+        }catch (RuntimeException e){
+            LOG.info("OP: Picklist could not be handled: " + e.getMessage());
+            e.printStackTrace();
+        }
+    }
+
+    private static void publishFeTableToFeApp(FETable feTable) {
+        OFBizOrderpicker.FEndWrapper proto_fendWrapper = OFBizOrderPickerTrans.transform2proto(feTable);
+        String jsonString = ProtoJsonMap.toJson(proto_fendWrapper);
+        mqttService.publish(OFBizOrderPicker.TOPIC_FRONTEND, jsonString, 0, false);
+        LOG.info("OP: publishing JSON mqttMessage:" + jsonString + " on topic: " + OFBizOrderPicker.TOPIC_FRONTEND);
+    }
+
+    public static void processPicklistTestData(String path_to_test_data_file){
+        File testDataFile = new File(path_to_test_data_file);
+        for (String line : OtherUtility.readLines(testDataFile)) {
+            OFBizOrderPickerMqtt.handleJsonOpWrapper(line);
+          }
+    }
+
+    public static void processPosEvtTestData(String path_to_test_data_file){
+        File testDataFile = new File(path_to_test_data_file);
+        for (String line : OtherUtility.readLines(testDataFile)) {
+            OFBizOrderPickerMqtt.handleIPosMonitoringWrapper(line);
+        }
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerArgs.java b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerArgs.java
new file mode 100644
index 0000000000000000000000000000000000000000..3a5bd8e439d2c846b194a62f8424d82ccf9c68a9
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerArgs.java
@@ -0,0 +1,48 @@
+package ipos.project.iposextension.orderpicker;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist;
+import ipos.project.devkit.iposext.IPosArguments;
+
+public class OFBizOrderPickerArgs {
+/*
+    public static class OFBizOrderPickerConf implements IPosArguments.IPosConfigData {
+        private Picklist picklist;
+
+        public OFBizOrderPickerConf(Picklist picklist) {
+            this.picklist = picklist;
+        }
+
+        public Picklist getPicklist() {
+            return picklist;
+        }
+    }
+*/
+
+    /*
+    public static class OFBizOPPosEvtConf implements IPosArguments.HandlePosEventConf{
+        private String picklistId;
+
+        public OFBizOPPosEvtConf(String picklistId) {
+            this.picklistId = picklistId;
+        }
+
+        public String getPicklistId() {
+            return picklistId;
+        }
+    }
+
+     */
+/*
+    public static class OFBizOPEcaConf implements IPosArguments.IPosEcaConfig {
+        private String picklistId;
+
+        public OFBizOPEcaConf(String picklistId) {
+            this.picklistId = picklistId;
+        }
+
+        public String getPicklistId() {
+            return picklistId;
+        }
+    }
+*/
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerExt.java b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..415bdb228986a00c1d69a7915bf749cb8d420303
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerExt.java
@@ -0,0 +1,166 @@
+package ipos.project.iposextension.orderpicker;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist;
+import ipos.project.DataModellntegration.iPos_Datamodel.Point3D;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+import ipos.project.devkit.eca.zseq.ZoneSequenceArgs;
+import ipos.project.devkit.iposext.IPosArguments;
+import ipos.project.devkit.iposext.IPosExtension;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import ipos.project.iposextension.orderpicker.eca.SeqPicklistCondition;
+import ipos.project.iposextension.orderpicker.eca.SeqPicklistRule;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.emf.common.util.EList;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * Extension of the IPos-FW specific to the usecase "OrderPicker".
+ */
+public class OFBizOrderPickerExt extends IPosExtension {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    List<SeqPicklistRule> spRules = new LinkedList<SeqPicklistRule>(); // One ComplexEventFilter is responsible for one picklist
+
+    @Override
+    public void handlePositionEvent(IposPositionEvent posEvent) {
+        IPosArguments.HandlePosEventConf dummyArgument = new IPosArguments.HandlePosEventConf() {};
+        handlePositionEvent(posEvent, dummyArgument);
+    }
+
+    private String extractZoneIdsAsString(EList<ZoneDescriptor> zoneDescriptors) {
+        String zoneIds = "";
+        for (ZoneDescriptor zoneDescriptor : zoneDescriptors){
+            zoneIds += zoneDescriptor.getZoneId() + ", ";
+        }
+        return zoneIds.substring(0, zoneIds.length()-2);
+    }
+
+    /**
+     * Function runs through all registered picklists (i.e., all ECARules that have been created) and
+     * applies the received PositionEvent to it. It is not the responsibility of this function to determine
+     * whether a given PositionEvent is applicable to a given ECARule. This decision is determined by the ECARule.
+     * For handling a PositionEvent the classes SeqPicklistRule, SeqPicklistRule, SeqPicklistCondition, and UpdateFrontendAction are relevant.
+     *
+     * @param posEvent
+     * @param _posEvtConf
+     */
+    @Override
+    public void handlePositionEvent(IposPositionEvent posEvent, IPosArguments.HandlePosEventConf _posEvtConf) {
+        LOG.info("OP:");
+        LOG.info("OP:----OFBizOrderPickerExt--------------------------");
+        LOG.info("OP: Received IposPositionEvent for agent " + posEvent.getAgentId() + ". Zones: " + extractZoneIdsAsString(posEvent.getZoneDescriptors()) + "; position: " + logPoint((Point3D) posEvent.getPosition().getPoint()));
+        try {
+            spRules.forEach(spRule -> spRule.apply(posEvent));
+            /* above: lambda-expression, shortform of:
+
+            spRules.forEach(new Consumer<SeqPicklistRule>(){
+                @Override
+                public void accept(SeqPicklistRule spRule){
+                    spRule.apply(posEvent);
+                }
+            });
+            */
+        }catch (RuntimeException e){
+            LOG.info("OP: PositionEvent could not be handled: " + e.getMessage());
+            return;
+        }
+    }
+
+    @Override
+    public void handleRawdataEvent(IPosRawdataEvent iPosRawdataEvent) {}
+
+    private String logPoint(Point3D point) {
+        return "(x: " + point.getX() + ", y: " + point.getY() + ", z: " + point.getZ() + ")";
+    }
+
+    /*
+     private void handleCefResult(String picklistId, CEFResult cefResult) {
+         if(cefResult.isPosEventTriggeredStateChange()){
+             List<ZoneDescriptor> zoneDescriptors = cefResult.getPosEvent().getZonedescriptors();
+             String vesselId = zoneDescriptors.get(0).getZoneId();
+             ofbizOPApp.onPickerStateChange(picklistId, vesselId, cefResult.isPosEventIsInOrder());
+         }
+     }
+
+
+     private SeqPicklistRule getEcaRule(String picklistId) {
+         ECARule cef = getEcaRuleByPicklistId(picklistId);
+         if (! (cef instanceof SeqPicklistRule)){
+             throw new RuntimeException("Received argument of unexpeted type: " + cef.getClass() + " Expected was: " + ZoneSequenceRule.class);
+         }
+         return (SeqPicklistRule) cef;
+     }
+ */
+    /*
+    private String readPicklistId(IPosArguments.HandlePosEventConf _posEvtConf) {
+        if (! (_posEvtConf instanceof OFBizOrderPickerArgs.OFBizOPPosEvtConf)){
+            throw new RuntimeException("Received argument of unexpeted type: " + _posEvtConf.getClass() + " Expected was: " + OFBizOrderPickerArgs.OFBizOPPosEvtConf.class);
+        }
+        OFBizOrderPickerArgs.OFBizOPPosEvtConf posEvtConf = (OFBizOrderPickerArgs.OFBizOPPosEvtConf) _posEvtConf;
+        String picklistId = posEvtConf.getPicklistId();
+        return picklistId;
+    }
+*/
+
+    /**
+     * Functions prepares a MonitoringRequest that causes the IPos-FW to update the OrderPicker extension with all positions
+     * relevant for the OrderPicker-usecase.
+     * @param iposConfigData
+     * @return
+     */
+    @Override
+    public SimpleScene.IposConfigWrapper prepareConfigWrapper(IPosArguments.IPosConfigData iposConfigData) {
+            try {
+                return ProtoJsonMap.fromJson(OFBizOrderPicker.OP_MONITORINGREQUEST, SimpleScene.IposConfigWrapper.class);
+            } catch (InvalidProtocolBufferException e) {
+                throw new RuntimeException("Warning: Monitoring-request could not be parsed (JSON) and translated into Protobuf-data structures: ");
+            }
+        }
+
+    /**
+     * Function creates an ECARule that is able to detect whether PositionEvents have been received in
+     * an order that conforms to the order that is specified by the Picklist (see testdata-file testdata_raw_orderpicker_readable.txt).
+     * The picklist specifies picklistBins and InventoryItems. InventoryItems have to be placed in the picklistBins they belong to.
+     * Picklistbins have to be handled in the order of their occurence in the textfile. InventoryItems have to be handled
+     * in the order of their occurence in their picklistbin.
+      * @param picklist
+     */
+    public void setupECARule(Picklist picklist){
+        String pickerId = extractPickerId(picklist).orElseThrow(() -> new RuntimeException("Picklist did not contain the ID of the picker who is responsible for it"));
+        SeqPicklistRule spRule = new SeqPicklistRule(picklist.getPicklistId(), pickerId); // complex event filter for verifying the picker
+        List<ZoneDescriptor> zoneDescriptors = OFBizOrderPickerTrans.picklistToZoneDescriptors(picklist);
+        ZoneSequenceArgs.ZoneSequenceConfigure zsConfigure = new ZoneSequenceArgs.ZoneSequenceConfigure(zoneDescriptors, new SeqPicklistCondition());
+        spRule.configure(zsConfigure);
+        LOG.info("OP: SeqPicklistRule has been created: \n" + spRule.toString());
+        spRules.add(spRule);
+    }
+
+    private Optional<String> extractPickerId(Picklist picklist) {
+        if (picklist.getPicklistRoles().size() == 0){
+            return Optional.empty();
+        }else {
+            String pickerId = picklist.getPicklistRoles().get(0).getPartyId();
+            return Optional.of(pickerId);
+        }
+
+    }
+
+    /*
+    public Optional<ECARule> getEcaRuleByPicklistId(String picklistId) {
+        ECARule ecaRule = spRules.get(picklistId);
+        if(ecaRule == null){
+            return Optional.empty();
+        } else {
+            return Optional.of(ecaRule);
+        }
+    }
+*/
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerMqtt.java b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..04186ad0c62ba6521d527ed50da5d3107ef90515
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerMqtt.java
@@ -0,0 +1,61 @@
+package ipos.project.iposextension.orderpicker;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.OFBizOrderpicker;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.Picklist;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.trans.IPos2protoTransformer;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+import java.util.List;
+
+@MqttListener(OFBizOrderPicker.TOPIC_POSITION_EVENT)
+public class OFBizOrderPickerMqtt implements Handler {
+    // ich denke: die meiste MQTT-Funktionalität sollte von einer Klasse aus dem IPos-extension-package geerbt werden
+    // hier sollte nur die Weiterleitung des PositionEvents mit der picklistId an die korrekte Klasse (OFBizOrderPickerExt.handlePositioneEvent) sichergestellt werden
+    // reception: has to call OFBizOrderPickerExt.handlePositionEvent
+    // reception: the name of the picklist shall equal the name of the topic that PositionEvents for this picklist are sent to
+    // horchen auf RobolabMonitoringOPExtension (IPos-FW sendet dort gemäß monitoringrequest die PositionEvents hin)
+
+    public static void handleJsonOpWrapper(String jsonMsg){
+        try {
+            OFBizOrderpicker.OrderpickerWrapper opWrapper = ProtoJsonMap.fromJson(jsonMsg, OFBizOrderpicker.OrderpickerWrapper.class);
+            for (OFBizOrderpicker.OFBizPicklist proto_Picklist : opWrapper.getPicklistsList()){
+                processPicklist(proto_Picklist);
+            }
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private static void processPicklist(OFBizOrderpicker.OFBizPicklist proto_picklist) {
+        Picklist picklist = OFBizOrderPickerTrans.protoPicklist2Internal(proto_picklist);
+        OFBizOrderPicker.handlePicklist(picklist);
+    }
+
+    @Override
+    public void handle(MqttMessage message) {
+        handleIPosMonitoringWrapper(message.toString());
+    }
+
+    static void handleIPosMonitoringWrapper(String jsonMsg) {
+        try {
+            SimpleScene.IposMonitoringWrapper iPosMonitoringWrapper = ProtoJsonMap.fromJson(jsonMsg, SimpleScene.IposMonitoringWrapper.class);
+            iPosMonitoringWrapper.getIposPositionEventsList().stream().forEach(iposPositionEvent_proto -> handleJsonPosEvt(iposPositionEvent_proto));
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static void handleJsonPosEvt(SimpleScene.IposPositionEvent proto_positionEvent){
+        // SimpleScene.IposPositionEvent proto_positionEvent = ProtoJsonMap.fromJson(jsonPosEvt, SimpleScene.IposPositionEvent.class);
+        List<IposPositionEvent> internal_iposPositionEvents = IPos2protoTransformer.transformToInternal(proto_positionEvent);
+        for (IposPositionEvent iposPositionEvent : internal_iposPositionEvents){
+            OFBizOrderPicker.ofbizOpIposExt.handlePositionEvent(iposPositionEvent);
+        }
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerTrans.java b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerTrans.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f353cc06c6a58cd18f2990a5114d4d7ffee734e
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerTrans.java
@@ -0,0 +1,169 @@
+package ipos.project.iposextension.orderpicker;
+
+import ipos.models.OFBizOrderpicker;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+import ipos.project.iposextension.orderpicker.frontend.FEInitRow;
+import ipos.project.iposextension.orderpicker.frontend.FETable;
+
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class OFBizOrderPickerTrans {
+    private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
+    private static OFBizFactory ofbizFactory = OFBizFactory.eINSTANCE;
+
+    public static Picklist protoPicklist2Internal(OFBizOrderpicker.OFBizPicklist proto_picklist) {
+        Picklist picklist = ofbizFactory.createPicklist();
+        picklist.setPicklistId(proto_picklist.getPicklistId());
+        List<PicklistRole> picklistRoles = proto_picklist.getPicklistRolesList().stream()
+                        .map(OFBizOrderPickerTrans::protoPicklistRole2Internal)
+                        .collect(Collectors.toList());
+        picklist.getPicklistRoles().addAll(picklistRoles);
+        List<PicklistBin> picklistBins = proto_picklist.getPicklistBinsList().stream()
+                .map(OFBizOrderPickerTrans::protoPicklistBin2Internal)
+                .collect(Collectors.toList());
+        picklist.getPicklistBins().addAll(picklistBins);
+        return picklist;
+    }
+
+    private static PicklistBin protoPicklistBin2Internal(OFBizOrderpicker.OFBizPicklistBin ofBizPicklistBin) {
+        PicklistBin picklistBin = ofbizFactory.createPicklistBin();
+        picklistBin.setPicklistId(ofBizPicklistBin.getPicklistId());
+        picklistBin.setBinLocationNumber(ofBizPicklistBin.getBinLocationNumber());
+        List<PicklistItem> picklistItems = ofBizPicklistBin.getPicklistItemsList().stream()
+                        .map(OFBizOrderPickerTrans:: protoPicklistItem2Internal)
+                        .collect(Collectors.toList());
+        picklistBin.getPicklistItems().addAll(picklistItems);
+        return picklistBin;
+    }
+
+    private static PicklistItem protoPicklistItem2Internal(OFBizOrderpicker.OFBizPicklistItem proto_picklistItem) {
+        PicklistItem picklistItem = ofbizFactory.createPicklistItem();
+        InventoryItem inventoryItem = ofbizFactory.createInventoryItem();
+        OFBizOrderpicker.OFBizInventoryItem proto_inventoryItem = proto_picklistItem.getInventoryItem();
+        inventoryItem.setInventoryItemId(proto_inventoryItem.getInventoryItemId());
+        inventoryItem.setContainerId(proto_inventoryItem.getContainerId());
+        inventoryItem.setProductId(proto_inventoryItem.getProductId());
+        picklistItem.setInventoryItem(inventoryItem);
+        return picklistItem;
+    }
+
+    private static PicklistRole protoPicklistRole2Internal(OFBizOrderpicker.OFBizPicklistRole ofbizPicklistRole) {
+        PicklistRole picklistRole = ofbizFactory.createPicklistRole();
+        picklistRole.setPicklistId(ofbizPicklistRole.getPicklistId());
+        picklistRole.setPartyId(ofbizPicklistRole.getPartyId());
+        picklistRole.setRoleTypeId(ofbizPicklistRole.getRoleTypeId());
+        return picklistRole;
+    }
+
+    static OFBizOrderpicker.FEndWrapper transform2proto(FETable feTable) {
+        OFBizOrderpicker.FEndWrapper.Builder proto_fendWrapper = OFBizOrderpicker.FEndWrapper.newBuilder();
+        OFBizOrderpicker.FEndInitPicklist.Builder proto_fendInitPicklist = OFBizOrderpicker.FEndInitPicklist.newBuilder();
+        proto_fendInitPicklist.setPicklistId(feTable.getPicklistId());
+        proto_fendInitPicklist.setPickerId(feTable.getPickerId());
+        List<OFBizOrderpicker.FEndInitRow> feInitRows = feTable.getFeInitRows().stream()
+                        .map(OFBizOrderPickerTrans::transform2proto)
+                        .collect(Collectors.toList());
+        proto_fendInitPicklist.addAllFEndInitRows(feInitRows);
+        proto_fendWrapper.addFEndInitPicklists(proto_fendInitPicklist);
+        return proto_fendWrapper.build();
+    }
+
+    private static OFBizOrderpicker.FEndInitRow transform2proto(FEInitRow feInitRow) {
+        OFBizOrderpicker.FEndInitRow.Builder proto_feInitRow = OFBizOrderpicker.FEndInitRow.newBuilder();
+        proto_feInitRow.setIndex(feInitRow.getIndex());
+        proto_feInitRow.setProductId(feInitRow.getProductId());
+        proto_feInitRow.setInventoryItemSoll(feInitRow.getInventoryItem_Soll());
+        proto_feInitRow.setShipmentBinNrSoll(feInitRow.getShipmentBinNr_Soll());
+        return proto_feInitRow.build();
+    }
+
+    /**
+     * Note to the implementation: A picklistBin knows multiple picklistItems, i.e., multiple tableRows,
+     * and is therefore transformed into a list of tableRows ("feInitRow"). flatMap prevents us from
+     * obtaining a List<List<FEInitRow>>.
+     * Directly collecting the result of transformBin2Rows would result in such a nested list. Due to
+     * flatMap we obtain a flattened version of it: List<FEInitRow>
+     * @param picklist
+     * @return
+     */
+    static FETable transformPicklistIntoFeTable(Picklist picklist) {
+        String picklistId = picklist.getPicklistId();
+        List<PicklistRole> pickerRoles = safelyExtractPickerRoles(picklist);
+        String pickerId = pickerRoles.get(0).getPartyId();
+        List<FEInitRow> feInitRows = picklist.getPicklistBins()
+                .stream()
+                .map(OFBizOrderPickerTrans::transformBin2Rows)
+                .flatMap(Collection::stream)
+                .collect(Collectors.toList());
+       setRowIndices(feInitRows);
+        return new FETable(picklistId, pickerId, feInitRows);
+    }
+
+    private static void setRowIndices(List<FEInitRow> feInitRows) {
+        int rowIdx = 1;
+        for (FEInitRow feInitRow : feInitRows){
+            feInitRow.setRowIdx(rowIdx);
+            rowIdx++;
+        }
+    }
+
+    private static List<PicklistRole> safelyExtractPickerRoles(Picklist picklist) {
+        List<PicklistRole> pickerRoles = picklist.getPicklistRoles()
+                .stream()
+                .filter(c -> c.getRoleTypeId().equals(OFBizOrderPicker.OP_PICKER_ROLE_TYPE))
+                .collect(Collectors.toList());
+        if (pickerRoles.size() == 0){
+            throw new RuntimeException("There is no picker associated to the picklist");
+        }else if (pickerRoles.size() > 1){
+            throw new RuntimeException("There are multiple pickers associated to the picklist");
+        }
+        return pickerRoles;
+    }
+
+    private static List<FEInitRow> transformBin2Rows(PicklistBin picklistBin) {
+        List<FEInitRow> feInitRows = new LinkedList<FEInitRow>();
+        for (PicklistItem picklistItem : picklistBin.getPicklistItems()){
+            InventoryItem inventoryItem = picklistItem.getInventoryItem();
+            String productId = inventoryItem.getProductId();
+            String inventoryItem_Soll = inventoryItem.getContainerId();
+            String shipmentBinNr_Soll = picklistBin.getBinLocationNumber();
+            FEInitRow feInitRow = new FEInitRow(-1, productId, inventoryItem_Soll, shipmentBinNr_Soll);
+            feInitRows.add(feInitRow);
+        }
+        return feInitRows;
+    }
+
+    static List<ZoneDescriptor> picklistToZoneDescriptors(Picklist picklist) {
+        FETable feTable = OFBizOrderPickerTrans.transformPicklistIntoFeTable(picklist); // the ECA-rule shall expect the position events to arrive exactly in the order displayed in the frontend-table
+        List<ZoneDescriptor> zoneDescriptors = feTable.getFeInitRows().stream()
+                .map(OFBizOrderPickerTrans::feTableRowToZoneDescriptors)
+                .flatMap(Collection::stream)
+                .collect(Collectors.toList());
+        return zoneDescriptors;
+    }
+
+    static List<ZoneDescriptor> feTableRowToZoneDescriptors(FEInitRow feInitRow) {
+        List<ZoneDescriptor> zoneDescriptors = new LinkedList<>();
+        zoneDescriptors.add(extractInvItemZoneDescFromRow(feInitRow));
+        zoneDescriptors.add(extractShipmentBinZoneDescFromRow(feInitRow));
+        return zoneDescriptors;
+    }
+
+    private static ZoneDescriptor extractShipmentBinZoneDescFromRow(FEInitRow feInitRow) {
+        ZoneDescriptor shipBin_zoneDescriptor = modelFactory.createZoneDescriptor();
+        shipBin_zoneDescriptor.setZoneId(feInitRow.getShipmentBinNr_Soll());
+        return shipBin_zoneDescriptor;
+    }
+
+    private static ZoneDescriptor extractInvItemZoneDescFromRow(FEInitRow feInitRow) {
+        ZoneDescriptor invItem_zoneDescriptor = modelFactory.createZoneDescriptor();
+        invItem_zoneDescriptor.setZoneId(feInitRow.getInventoryItem_Soll());
+        return invItem_zoneDescriptor;
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/README.md b/src/main/java/ipos/project/iposextension/orderpicker/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..a7a868019fd440213c6f7aab4daa90b6010d00f2
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/README.md
@@ -0,0 +1,55 @@
+# OrderPicker extension
+
+## How to run?
+1. Preparation
+   - Make sure that IPos-FW can connect to an MQTT-server
+     - Verify MQTT-configuration in `src\main\resources\application.yml`
+   - Check logger configuration in `ipos.project.CustomLoggingFilter`
+     - Returning `FilterReply.DENY` prevents messages from being logged, `FilterReply.ACCEPT` allows them to be logged
+     - Logging all messages with relevance for this extension requires accepting all messages that contain the string `OP:`
+   - Check that the *modules*-submodule has been checked out properly
+     - folder `models` should not be empty
+     - if empty, try to clone the repository together with checking out all submodules
+       - `git clone -b SimpleScene --recurse-submodules https://git-st.inf.tu-dresden.de/ipos/project.git project4`
+       - additionally: `git status` in folder `models` should return `Head detached`. To fix that: `git checkout main`
+   - Make sure that an instance of the [frontend-app](https://git-st.inf.tu-dresden.de/ipos/front-end-app) is running and accessible by the IPos-FW
+     - Remark: This is not necessary if you only want to debug the IPos-FW or examine its logging messages
+2. Launch IPos-FW
+    - main-function: `ipos.project.MainApp.main`
+    - Console should print an overview of the available comments (if CustomLoggingFilter accepts messages containing string `SHELL:`)
+    - Console can be made to reprint the overview by entering `help`
+3. Enter `init op`
+    - Initializes both, IPos-FW and OrderPicker extension
+    - OrderPicker extension sends MonitoringRequest to IPos-FW that causes it to send *Position-Updates* to the OrderPicker that cover all zones relevant for the verification of order-picking  
+4. Enter `oppl testdata`
+    - Reads a test-picklist contained in JSON-file `testdata_raw_orderpicker.txt`
+    - The logger should print the sequence of zones the picker is expected to visit
+5. Enter `opevts testdata`
+    - Reads the JSON-file `testdata_raw_orderpicker_posEvts.txt` containing a sequence of test-messages indicating to the *OrderPicker extension* the presence of the picker in certain zones
+    - The OrderPicker verifies whether the picker follows the expected sequence. 
+    - The *OrderPicker extension* informs the frontend-app about certain events by sending appropriate messages:
+      - Picker entered a zone in order
+      - Picker entered a zone out of order
+    - The behaviour of the *OrderPicker extension* can be verified by inspecting the (exhaustive) logger-output
+      - Messages sent are sent to the frontend-app are logged
+      - Events that have occured but are not indicated to the frontend-app are logged
+
+## Selected positions in source-code
+### Execution of the SHELL-commands
+- function `ipos.project.MainApp.processCommands`
+### Initialization of the *OrderPicker extension*
+- starting point: function `ipos.project.MainApp.initOp`
+- The MonitoringReqeuest is prepared: function `ipos.project.iposextension.orderpicker.OFBizOrderPickerExt.prepareConfigWrapper`
+### Information on the extension-mechanism of the IPos-FW
+- see documentation of function `ipos.project.iposextension.orderpicker.OFBizOrderPicker.initialize`
+### Information on the general behaviour of the `OrderPicker extension`
+- see documentation of class `ipos.project.iposextension.orderpicker.OFBizOrderPicker`
+### Testdata processing
+- picklist testdata: function `ipos.project.iposextension.orderpicker.OFBizOrderPicker.processPicklistTestData`
+- position testdata: function `ipos.project.iposextension.orderpicker.OFBizOrderPicker.processPosEvtTestData`
+### Picklist-handling
+- function: `ipos.project.iposextension.orderpicker.OFBizOrderPicker.handlePicklist`
+- filter-behaviour: see documentation of function `ipos.project.iposextension.orderpicker.OFBizOrderPickerExt.setupECARule`
+### Handling a PositionEvent sent from IPos-FW
+- function: `ipos.project.iposextension.orderpicker.OFBizOrderPickerExt.handlePositionEvent(ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent, ipos.project.devkit.iposext.IPosArguments.HandlePosEventConf)`
+- overall behaviour of each ECA-rule: `ipos.project.devkit.eca.ECARule.apply`
\ No newline at end of file
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/eca/SeqPicklistCondition.java b/src/main/java/ipos/project/iposextension/orderpicker/eca/SeqPicklistCondition.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff5b8327d6614152fd72cb89e152cec41e8a345a
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/eca/SeqPicklistCondition.java
@@ -0,0 +1,33 @@
+package ipos.project.iposextension.orderpicker.eca;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.ZoneDescriptor;
+import ipos.project.devkit.eca.zseq.StageChangeAction;
+import ipos.project.devkit.eca.zseq.ZoneSequenceCondition;
+import ipos.project.devkit.eca.zseq.ZoneSequenceStage;
+import ipos.project.iposextension.orderpicker.OFBizOrderPicker;
+
+public class SeqPicklistCondition extends ZoneSequenceCondition {
+
+    int timesCalled = 0;
+
+    /**
+     *
+     * @param zoneDescriptor describes the zone, i.e. the inventory- or shipmentBinItem, that the received Position(Event) has been found be located into by the IPos-FW
+     * @return
+     */
+    @Override
+    public StageChangeAction evaluateStageChangeIntoAction(ZoneDescriptor zoneDescriptor){
+        timesCalled++;
+        int index = (int) Math.ceil(timesCalled/2.0); // number of the line of the frontend-app table should be updated. Each second StageChange changes the line number
+        String inventoryOrShipment = (timesCalled%2.0 == 1.0) ? OFBizOrderPicker.INVENTORYITEM_TYPE_NAME : OFBizOrderPicker.SHIPMENTBIN_TYPE_NAME; // uneven -> inventoryItem, even -> shipmentBin
+
+        ZoneSequenceStage nextStage = currentStage.getNextStage(); // assumption: ZoneSequenceRule::isApplicable rejects the event if the corresponding picklist has been finished
+        String nextItemId = nextStage.getEventDescriptors().get(0).getZoneId();
+        boolean isCorrect = zoneDescriptor.getZoneId().equals(nextItemId);
+        String itemId = zoneDescriptor.getZoneId();
+
+        UpdateFrontendAction updateFrontendAction = new UpdateFrontendAction(index, isCorrect, itemId, inventoryOrShipment);
+        return updateFrontendAction;
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/eca/SeqPicklistRule.java b/src/main/java/ipos/project/iposextension/orderpicker/eca/SeqPicklistRule.java
new file mode 100644
index 0000000000000000000000000000000000000000..c1b796b81df321a12cc7851c18049757d9cf356c
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/eca/SeqPicklistRule.java
@@ -0,0 +1,42 @@
+package ipos.project.iposextension.orderpicker.eca;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.devkit.eca.zseq.ZoneSequenceRule;
+
+public class SeqPicklistRule extends ZoneSequenceRule {
+    private String picklistId;
+    private String pickerId;
+
+    public SeqPicklistRule(String picklistId, String pickerId) {
+        this.picklistId = picklistId;
+        this.pickerId = pickerId;
+    }
+
+    public String getPicklistId() {
+        return picklistId;
+    }
+
+    public String getPickerId() {
+        return pickerId;
+    }
+
+    @Override
+    public String toString() {
+        String strRepresentation = "SeqPicklistRule: \n picklistId: " + picklistId + "\n pickerId: " + pickerId + "\n";
+        strRepresentation += zsCondition.toString();
+        return strRepresentation;
+
+    }
+
+    @Override
+    public boolean isApplicable(IposPositionEvent posEvent){
+        boolean picklistHasBeenFinished = zsCondition.getCurrentStage().getNextStage() == null;
+        boolean isApplicable = this.pickerId.equals(posEvent.getAgentId()) & (!picklistHasBeenFinished);
+        return super.isApplicable(posEvent) & isApplicable;
+    }
+
+    //@Override
+    //public StageChangeAction createSCAction() {
+    //    return null;
+    //}
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/eca/UpdateFrontendAction.java b/src/main/java/ipos/project/iposextension/orderpicker/eca/UpdateFrontendAction.java
new file mode 100644
index 0000000000000000000000000000000000000000..49b8c3b90a6362fa6d6c5f7c5c48526a613db7d4
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/eca/UpdateFrontendAction.java
@@ -0,0 +1,63 @@
+package ipos.project.iposextension.orderpicker.eca;
+
+import ipos.models.OFBizOrderpicker;
+import ipos.project.devkit.eca.zseq.StageChangeAction;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import ipos.project.iposextension.orderpicker.OFBizOrderPicker;
+import ipos.project.iposextension.orderpicker.frontend.FETransformer;
+import ipos.project.iposextension.orderpicker.frontend.FEUpdateInventoryItem;
+import ipos.project.iposextension.orderpicker.frontend.FEUpdateShipmentBin;
+import org.apache.logging.log4j.LogManager;
+
+public class UpdateFrontendAction extends StageChangeAction {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    private final int index;
+    private final boolean isCorrect;
+    private final String itemId;
+    private final String inventoryOrShipment;
+
+    // @Autowired
+   // public static ExternalPubServiceImpl mqttService;
+
+    public UpdateFrontendAction(int index, boolean isCorrect, String itemId, String inventoryOrShipment) {
+        super();
+        this.index = index;
+        this.isCorrect = isCorrect;
+        this.itemId = itemId;
+        this.inventoryOrShipment = inventoryOrShipment;
+    }
+
+    @Override
+    public void execute() {
+        if (shouldBeWrittenInInventoryItemColumn(inventoryOrShipment)){
+            FEUpdateInventoryItem feUpdInvItem = new FEUpdateInventoryItem(index, isCorrect, itemId);
+            OFBizOrderpicker.FEndUpdateInventoryItem proto_invItem = FETransformer.transformIntoProto(feUpdInvItem);
+            OFBizOrderpicker.FEndWrapper proto_invItemWrapper = FETransformer.putIntoWrapper(proto_invItem);
+            String jsonString = ProtoJsonMap.toJson(proto_invItemWrapper);
+            OFBizOrderPicker.mqttService.publish(OFBizOrderPicker.TOPIC_FRONTEND, jsonString, 0, false);
+            LOG.info("OP: publishing JSON-InventoryItem mqtt update-message to OP-Frontend-app:" + jsonString + " on topic: " + OFBizOrderPicker.TOPIC_FRONTEND + ". isCorrect (proto): " + proto_invItem.getInventoryIsCorrect());
+        }else if(shouldBeWrittenInShipmentBinColumn(inventoryOrShipment)) {
+            FEUpdateShipmentBin feUpdShipBinNr = new FEUpdateShipmentBin(index, isCorrect, itemId);
+            OFBizOrderpicker.FEndUpdateShipmentBin proto_shipBin = FETransformer.transformIntoProto(feUpdShipBinNr);
+            OFBizOrderpicker.FEndWrapper proto_shipBinWrapper = FETransformer.putIntoWrapper(proto_shipBin);
+            String jsonString = ProtoJsonMap.toJson(proto_shipBinWrapper);
+            OFBizOrderPicker.mqttService.publish(OFBizOrderPicker.TOPIC_FRONTEND, jsonString, 0, false);
+            LOG.info("OP: publishing JSON-ShipmentBin mqtt update-message to OP-Frontend-app:" + jsonString + " on topic: " + OFBizOrderPicker.TOPIC_FRONTEND+ ". isCorrect (proto): " + proto_shipBin.getShipmentIsCorrect());
+        } else {
+            LOG.info("OP: Warning: Could not react to StageChange, as vessel-type could not be determined");
+            return;
+        }
+    }
+
+    private int extractShipmentBinNr(String itemId) {
+        return Integer.parseInt(itemId.split("_")[1]);
+    }
+
+    private boolean shouldBeWrittenInShipmentBinColumn(String itemId) {
+        return itemId.equals(OFBizOrderPicker.SHIPMENTBIN_TYPE_NAME);
+    }
+
+    private boolean shouldBeWrittenInInventoryItemColumn(String itemId) {
+        return itemId.equals(OFBizOrderPicker.INVENTORYITEM_TYPE_NAME);
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEInitRow.java b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEInitRow.java
new file mode 100644
index 0000000000000000000000000000000000000000..793adc3b0ea9a3e72a4fb8eab5907cb216610572
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEInitRow.java
@@ -0,0 +1,35 @@
+package ipos.project.iposextension.orderpicker.frontend;
+
+public class FEInitRow {
+    public FEInitRow(int index, String productId, String inventoryItem_Soll, String shipmentBinNr_Soll) {
+        this.index = index;
+        this.productId = productId;
+        this.inventoryItem_Soll = inventoryItem_Soll;
+        this.shipmentBinNr_Soll = shipmentBinNr_Soll;
+    }
+
+    int index;
+    String productId;
+    String inventoryItem_Soll;
+    String shipmentBinNr_Soll;
+
+    public int getIndex() {
+        return index;
+    }
+
+    public String getProductId() {
+        return productId;
+    }
+
+    public String getInventoryItem_Soll() {
+        return inventoryItem_Soll;
+    }
+
+    public String getShipmentBinNr_Soll() {
+        return shipmentBinNr_Soll;
+    }
+
+    public void setRowIdx(int rowIdx){
+        this.index = rowIdx;
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/frontend/FETable.java b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FETable.java
new file mode 100644
index 0000000000000000000000000000000000000000..40eb2e8e38be86e054687ae7d9af2c0b4af404e1
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FETable.java
@@ -0,0 +1,27 @@
+package ipos.project.iposextension.orderpicker.frontend;
+
+import java.util.List;
+
+public class FETable {
+    String picklistId;
+    String pickerId;
+    List<FEInitRow> feInitRows;
+
+    public String getPicklistId() {
+        return picklistId;
+    }
+
+    public String getPickerId() {
+        return pickerId;
+    }
+
+    public List<FEInitRow> getFeInitRows() {
+        return feInitRows;
+    }
+
+    public FETable(String picklistId, String pickerId, List<FEInitRow> feInitRows) {
+        this.picklistId = picklistId;
+        this.pickerId = pickerId;
+        this.feInitRows = feInitRows;
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/frontend/FETransformer.java b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FETransformer.java
new file mode 100644
index 0000000000000000000000000000000000000000..63c8ce3e7fb45cfade19ca39aaca486318a6eb52
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FETransformer.java
@@ -0,0 +1,34 @@
+package ipos.project.iposextension.orderpicker.frontend;
+
+import ipos.models.OFBizOrderpicker;
+
+public class FETransformer {
+    public static OFBizOrderpicker.FEndUpdateInventoryItem transformIntoProto(FEUpdateInventoryItem feUpdInvItem) {
+        OFBizOrderpicker.FEndUpdateInventoryItem.Builder proto_invItem = OFBizOrderpicker.FEndUpdateInventoryItem.newBuilder();
+        proto_invItem.setIndex(feUpdInvItem.getIndex());
+        proto_invItem.setInventoryIsCorrect(feUpdInvItem.isCorrect());
+        proto_invItem.setInventoryItemIst(feUpdInvItem.getInventoryItem_Ist());
+        return proto_invItem.build();
+    }
+
+    public static OFBizOrderpicker.FEndUpdateShipmentBin transformIntoProto(FEUpdateShipmentBin feUpdShipBinNr) {
+        OFBizOrderpicker.FEndUpdateShipmentBin.Builder proto_shipBin = OFBizOrderpicker.FEndUpdateShipmentBin.newBuilder();
+        proto_shipBin.setIndex(feUpdShipBinNr.getIndex());
+        proto_shipBin.setShipmentIsCorrect(feUpdShipBinNr.isCorrect());
+        proto_shipBin.setShipmentBinNrIst(feUpdShipBinNr.getShipmentBinNrIstColumn());
+        return proto_shipBin.build();
+    }
+
+    public static OFBizOrderpicker.FEndWrapper putIntoWrapper(OFBizOrderpicker.FEndUpdateInventoryItem proto_invItem) {
+        OFBizOrderpicker.FEndWrapper.Builder proto_fendWrapper = OFBizOrderpicker.FEndWrapper.newBuilder();
+        proto_fendWrapper.addFEndUpdateInventoryItems(proto_invItem);
+        return proto_fendWrapper.build();
+    }
+
+    public static OFBizOrderpicker.FEndWrapper putIntoWrapper(OFBizOrderpicker.FEndUpdateShipmentBin proto_shipBin) {
+        OFBizOrderpicker.FEndWrapper.Builder proto_fendWrapper = OFBizOrderpicker.FEndWrapper.newBuilder();
+        proto_fendWrapper.addFEndUpdateShipmentBins(proto_shipBin);
+        return proto_fendWrapper.build();
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEUpdateInventoryItem.java b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEUpdateInventoryItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..2ab79a41877f03559d441cc6b5d4ca683eecb0b7
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEUpdateInventoryItem.java
@@ -0,0 +1,14 @@
+package ipos.project.iposextension.orderpicker.frontend;
+
+public class FEUpdateInventoryItem extends FEUpdateRow {
+    String inventoryItem_Ist;
+
+    public FEUpdateInventoryItem(int index, boolean isCorrect, String inventoryItem_Ist) {
+        super(index, isCorrect);
+        this.inventoryItem_Ist = inventoryItem_Ist;
+    }
+
+    public String getInventoryItem_Ist() {
+        return inventoryItem_Ist;
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEUpdateRow.java b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEUpdateRow.java
new file mode 100644
index 0000000000000000000000000000000000000000..b007a0cbbcc5992123280649beecf099f4ffa941
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEUpdateRow.java
@@ -0,0 +1,19 @@
+package ipos.project.iposextension.orderpicker.frontend;
+
+public class FEUpdateRow {
+    int index;
+    boolean isCorrect;
+
+    public FEUpdateRow(int index, boolean isCorrect) {
+        this.index = index;
+        this.isCorrect = isCorrect;
+    }
+
+    public int getIndex() {
+        return index;
+    }
+
+    public boolean isCorrect() {
+        return isCorrect;
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEUpdateShipmentBin.java b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEUpdateShipmentBin.java
new file mode 100644
index 0000000000000000000000000000000000000000..8c7171cd4c400ccbba67539cf9f00369915f20e0
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/orderpicker/frontend/FEUpdateShipmentBin.java
@@ -0,0 +1,14 @@
+package ipos.project.iposextension.orderpicker.frontend;
+
+public class FEUpdateShipmentBin extends FEUpdateRow{
+    String shipmentBinNrIstColumn;
+
+    public FEUpdateShipmentBin(int index, boolean isCorrect, String shipmentBinNrIst) {
+        super(index, isCorrect);
+        this.shipmentBinNrIstColumn = shipmentBinNrIst;
+    }
+
+    public String getShipmentBinNrIstColumn() {
+        return shipmentBinNrIstColumn;
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSM.java b/src/main/java/ipos/project/iposextension/osm/OSM.java
new file mode 100644
index 0000000000000000000000000000000000000000..84de78034cb783d277dbdb0936f5106689ab1817
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSM.java
@@ -0,0 +1,65 @@
+package ipos.project.iposextension.osm;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.VDA5050;
+import ipos.project.DataModellntegration.VDA5050Processor.api.MqttRequestHandler;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.devkit.iposext.IPosArguments;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.OtherUtility;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.util.Scanner;
+
+@Component
+public class OSM {
+
+    public static final String TOPIC_TOOZEXT_OUTPUT = "SmartGlassesBackend";
+    public static final String SERIALIZATIONTYPE_TOOZEXT_OUTPUT = "json";
+    public static final String OSM_MONREQ = "{\"monitoringRequests\": [{\"properties\": [\"%s\"], \"monitoringTaskId\": \"%s\", \"refSystemId\": \"ROOT\", \"serializationType\": \"json\"}]}";
+    public static final String TOPIC_OSM_ENVIRONMENT = "OSM_ENVIRONMENT";
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    static private OSMExt osmExt = new OSMExt();
+    public static final String OSM_WAYPOINT_OSMOBJECT = "{           \"agentId\":\"waypoint%s\",           \"agentType\":\"\",           \"publisher\":\"main\",           \"position\":{               \"refSystemId\":\"ROOT\",               \"point\":{                   \"x\":%s,                   \"y\":%s,                   \"z\":0               }           },           \"time\":\"2022-04-14T09:41:20+00:00\"       }";
+    //public static final String OSM_WAYPOINT_OSMOBJECT = "{ \"waypoints\": [       {           \"agentId\":\"waypoint%s\",           \"agentType\":\"\",           \"publisher\":\"main\",           \"position\":{               \"refSystemId\":\"ROOT\",               \"point\":{                   \"x\":%s,                   \"y\":%s,                   \"z\":0               }           },           \"time\":\"2022-04-14T09:41:20+00:00\"       } ] }";
+    // public static final String OSM_WAYPOINT_OSMOBJECT = "{           \"id\": \"waypoint%s\",           \"sensorId\": \"\",           \"type\": \"\",           \"sensorType\": \"\",           \"position\": {               \"refSystemId\": \"ROOT\",               \"point\": {               \"x\": %s,               \"y\": %s,               \"z\": 0               },               \"accuracy\": 1           },           \"orientation\": {               \"x\": 0,               \"y\": 0,               \"z\": 0,               \"w\": 0           },           \"lastPosUpdate\": \"2021-09-14T09:41:20+00:00\"           }";
+
+    @Autowired
+    public OSM(ExternalPubServiceImpl mqttService){
+        osmExt.setMqttService(mqttService);
+        OSMIPosMonitoringWrapperMqtt.setMqttService(mqttService);
+        OSMExtInputMqtt.setMqttService(mqttService);
+        OSMExtOutputMqtt.setMqttService(mqttService);
+        osmExt.initOSM_drawWaypoints();
+    }
+
+    public static void handleOSMObject(OSMObject osmObject) {
+        osmExt.handleOSMObject(osmObject);
+    }
+
+    public static void processMonTargetTestdata(String path_to_monTarget_file) {
+        File monTargetFile = new File(path_to_monTarget_file);
+        for (String line : OtherUtility.readLines(monTargetFile)) {
+            OSMExtInputMqtt.handleOsmExtInput(line);
+        }
+    }
+
+    public static void handleOSMMonitoringTarget(OSMMonitoringTarget osmMonitoringTarget_internal) {
+        IPosArguments.IPosConfigData osmConf = new OSMArgs.OSMConf(OSMExt.TOPIC_OSM_EXT, osmMonitoringTarget_internal.getProtocol());
+        osmExt.configureIpos(osmConf);
+    }
+
+    public static void processTestData(String path_to_test_data_file){
+        File testDataFile = new File(path_to_test_data_file);
+        Scanner scanner = new Scanner(System.in);
+            for (String line : OtherUtility.readLines(testDataFile)) {
+                OSMExtInputMqtt.handleOsmExtInput(line);
+        }
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMArgs.java b/src/main/java/ipos/project/iposextension/osm/OSMArgs.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b0ae94df89f0dcb4f5012938986fea326ff7783
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMArgs.java
@@ -0,0 +1,27 @@
+package ipos.project.iposextension.osm;
+
+import ipos.project.devkit.iposext.IPosArguments;
+
+public class OSMArgs {
+
+    public static class OSMConf implements IPosArguments.IPosConfigData {
+
+        String monitoringTaskId;
+
+        public String getProtocol() {
+            return protocol;
+        }
+
+        String protocol;
+        public String getMonitoringTaskId() {
+            return monitoringTaskId;
+        }
+
+        public OSMConf(String monitoringTaskId, String protocol) {
+            this.monitoringTaskId = monitoringTaskId;
+            this.protocol = protocol;
+        }
+
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExt.java b/src/main/java/ipos/project/iposextension/osm/OSMExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..f51a486c73aa8fc3c0c5cfd7ce72c36ec118a5ee
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMExt.java
@@ -0,0 +1,108 @@
+package ipos.project.iposextension.osm;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.devkit.iposext.IPosArguments;
+import ipos.project.devkit.iposext.IPosExtension;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Objects;
+
+public class OSMExt extends IPosExtension {
+    public static final String TOPIC_OSM_EXT = "AGVViewer_VDA5050";
+    public static final String TOPIC_OSM_EXT_OUTPUT = "ipos/client/position";
+    public static final String TOPIC_OSM_EXT_OUT_SET_WAYPOINT = "ipos/client/waypoint";
+    public static final String SERIALIZATION_TYPE_OSM_EXT = "json";
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    void initOSM_drawWaypoints() {
+        createAndTransmitWaypointToOSMApp("1",18, 10);
+        createAndTransmitWaypointToOSMApp("2",6, 3.12f);
+        createAndTransmitWaypointToOSMApp("3",14, 3.12f);
+        createAndTransmitWaypointToOSMApp("4",14, 16.92f);
+        createAndTransmitWaypointToOSMApp("5",6, 16.92f);
+        createAndTransmitWaypointToOSMApp("6",2, 10);
+    }
+
+    private void createAndTransmitWaypointToOSMApp(String waypointId, float x, float y) {
+        try {
+            //OSMObject waypointAsOSMObject = createWaypointAsOSMObject(waypointId, x, y);
+            //OSMExtOutputMqtt.transmitOSMObject(waypointAsOSMObject, TOPIC_OSM_EXT_OUT_SET_WAYPOINT, SERIALIZATION_TYPE_OSM_EXT);
+            ipos.models.OSM.OSMWaypoint waypoint_proto = createWaypoint_proto(waypointId, x, y);
+            OSMExtOutputMqtt.transmitOSMOutput(waypoint_proto, TOPIC_OSM_EXT_OUT_SET_WAYPOINT, SERIALIZATION_TYPE_OSM_EXT);
+        }catch(NullPointerException e){
+            LOG.warn("Warning: Could not initialize OSM-app with waypoint. Id of the waypoint that could not be initialized: " + waypointId);
+        }
+    }
+
+    private ipos.models.OSM.OSMWaypoint createWaypoint_proto(String waypointId, float x, float y) {
+        String waypointAsJSONString = String.format(OSM.OSM_WAYPOINT_OSMOBJECT, waypointId, String.valueOf(x), String.valueOf(y));
+        ipos.models.OSM.OSMWaypoint waypoint_proto = Objects.requireNonNull(parseIntoProtoWaypointOrNull(waypointAsJSONString));
+        return waypoint_proto;
+    }
+
+    private ipos.models.OSM.OSMWaypoint parseIntoProtoWaypointOrNull(String wrappedWaypointAsJSONString) {
+        try {
+            return ProtoJsonMap.fromJson(wrappedWaypointAsJSONString, ipos.models.OSM.OSMWaypoint.class);
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    /*
+    private OSMObject createWaypointAsOSMObject(String waypointId, float x, float y) {
+        String waypointAsJSONString = String.format(OSM.OSM_WAYPOINT_OSMOBJECT, waypointId, String.valueOf(x), String.valueOf(y));
+        SimpleScene.IposObject waypointAsOsmObjectProto = Objects.requireNonNull(parseIntoProtoObjectOrNull(waypointAsJSONString));
+        OSMObject waypointAsOSMObject = OSMTrans.posEv_proto2OSMObject(waypointAsOsmObjectProto) ;
+        return waypointAsOSMObject;
+    }
+    */
+    @Nullable
+    private SimpleScene.IposObject parseIntoProtoObjectOrNull(String waypointAsJSONString) {
+        try {
+            return ProtoJsonMap.fromJson(waypointAsJSONString, SimpleScene.IposObject.class);
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
+    @Override
+    public void handlePositionEvent(IposPositionEvent posEvent) {}
+
+    @Override
+    public void handlePositionEvent(IposPositionEvent posEvent, IPosArguments.HandlePosEventConf posEventConf) {}
+
+    @Override
+    public void handleRawdataEvent(IPosRawdataEvent iPosRawdataEvent) {}
+
+    public void handleOSMObject(OSMObject osmObject){
+        OSMExtOutputMqtt.transmitOSMObject(osmObject, TOPIC_OSM_EXT_OUTPUT, SERIALIZATION_TYPE_OSM_EXT);
+    }
+
+    @Override
+    public SimpleScene.IposConfigWrapper prepareConfigWrapper(IPosArguments.IPosConfigData iposConfigData) {
+        OSMArgs.OSMConf osmConf = (OSMArgs.OSMConf) iposConfigData;
+        String osmMonitoringTarget = osmConf.getMonitoringTaskId();
+        String osmProtocol = osmConf.getProtocol();
+        return createConfigWrapperFromOSMMonitoringTarget(osmMonitoringTarget, osmProtocol);
+    }
+
+    private SimpleScene.IposConfigWrapper createConfigWrapperFromOSMMonitoringTarget(String monitoringTaskId, String protocol) {
+        String monitoringRequest = String.format(OSM.OSM_MONREQ, protocol, monitoringTaskId);
+        try {
+            return ProtoJsonMap.fromJson(monitoringRequest, SimpleScene.IposConfigWrapper.class);
+        } catch (InvalidProtocolBufferException e) {
+            LOG.info("Warning: IPos-IPS could not be configured properly, as there was a MonitoringTarget that no ConfigWrapper could be created from.");
+            return null;
+        }
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..38440b1acf0fde856b8d755ce8e2675b74d25dd0
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java
@@ -0,0 +1,42 @@
+package ipos.project.iposextension.osm;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+@MqttListener(OSM.TOPIC_OSM_ENVIRONMENT)
+public class OSMExtInputMqtt implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static ExternalPubServiceImpl mqttService;
+    public static void setMqttService(ExternalPubServiceImpl mqttService) {
+        OSMExtInputMqtt.mqttService = mqttService;
+    }
+
+  @Override
+    public void handle(MqttMessage message) {
+        handleOsmExtInput(message.toString());
+    }
+
+    public static void handleOsmExtInput(String jsonMsg) {
+        ipos.models.OSM.OSMExtInputWrapper osmInputWrapper = null;
+        try {
+            LOG.info("OSM: Handling message in order to initialize OSM-application: " + jsonMsg);
+            osmInputWrapper = ProtoJsonMap.fromJson(jsonMsg, ipos.models.OSM.OSMExtInputWrapper.class);
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        }
+        osmInputWrapper.getMonitoringTargetsList().forEach(osmMonitoringTarget -> handleOsmMonitoringTarget(osmMonitoringTarget));
+    }
+
+    private static void handleOsmMonitoringTarget(ipos.models.OSM.OSMMonitoringTarget monitoringTarget_proto) {
+        OSMMonitoringTarget osmMonitoringTarget_internal = OSMTrans.osmMonTarget_proto2internal(monitoringTarget_proto);
+        OSM.handleOSMMonitoringTarget(osmMonitoringTarget_internal);
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..99a4f963dd113467c3b948a309925d8c41566256
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java
@@ -0,0 +1,48 @@
+package ipos.project.iposextension.osm;
+
+import com.google.protobuf.AbstractMessageLite;
+import ipos.models.OSM;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.OtherUtility;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+@MqttListener("invalid_topic")
+public class OSMExtOutputMqtt implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static ExternalPubServiceImpl mqttService;
+    public static void setMqttService(ExternalPubServiceImpl mqttService) {
+        OSMExtOutputMqtt.mqttService = mqttService;
+    }
+
+    public static void transmitOSMOutput(AbstractMessageLite osmOutput, String topic, String serializationType) {
+        OtherUtility.publishRespectingSerializationType(topic, serializationType, osmOutput);
+    }
+
+    @Override
+    public void handle(MqttMessage message) {}
+
+    public static void transmitOSMObject(OSMObject osmObject, String topic, String serializationType){
+        OSM.OSMObject osmObject_proto = OSMTrans.osmObject_internal2proto(osmObject);
+        OSM.OSMOutputWrapper osmOutputWrapper_proto = wrapIntoOutputWrapper(osmObject_proto);
+        logging_osm(topic, serializationType, osmObject_proto);
+        OtherUtility.publishRespectingSerializationType(topic, serializationType, osmOutputWrapper_proto);
+    }
+
+    private static OSM.OSMOutputWrapper wrapIntoOutputWrapper(OSM.OSMObject osmObject_proto) {
+     OSM.OSMOutputWrapper.Builder osmOutputWrapper_proto = OSM.OSMOutputWrapper.newBuilder();
+     osmOutputWrapper_proto.addObjects(osmObject_proto);
+     return osmOutputWrapper_proto.build();
+    }
+
+    private static void logging_osm(String topic, String serializationType, OSM.OSMObject osmObject_proto) {
+        LOG.info("OSM: Publishing " + osmObject_proto.getClass().getName() + " on topic " + topic + " with serialization type " + serializationType);
+        LOG.info("OSM: ");
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..2b790fb6be33800a1e1059d94efa0a2743b6da66
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java
@@ -0,0 +1,61 @@
+package ipos.project.iposextension.osm;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+@MqttListener(OSMExt.TOPIC_OSM_EXT)
+public class OSMIPosMonitoringWrapperMqtt implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static ExternalPubServiceImpl mqttService;
+    public static void setMqttService(ExternalPubServiceImpl mqttService) {
+        OSMIPosMonitoringWrapperMqtt.mqttService = mqttService;
+    }
+
+    // für den generierten code ggf. noch eine höhere Wrapper-Ebene vorsehen: IPosInputWrapper (enthält sowohl PositionWrapper, als auch RawdataWrapper)
+    // für den generierten code auch vorsehen: eigene XMqtt-Klasse für jeden Wrapper generieren der empfangen werden können soll.
+    // Also eine Klasse für den IPosInputWrapper und eine andere Klasse für den IPosToozExtInputWrapper. Für die Wrapper-Abbildung in EMF ggf. mit Packages arbeiten
+    // Es gibt Wrapper die nur ausgehende Nachrichten beinhalten (z.B. bei der tooz-Anwendung: ToozExtOutputWrapper), man muss beim Generieren festlegen können ob
+    // die Wrapper-Nachrichten überhaupt empfangen werden sollen
+    @Override
+    public void handle(MqttMessage message) {
+        handleIPosMonitoringWrapper(message.toString());
+    }
+
+    // generierter code: grundsätzlich für jede mögliche Nachricht etwas generieren, nicht nur für IPosUWBEvent
+    private void handleIPosMonitoringWrapper(String jsonMsg) {
+        try {
+            LOG.info("OSM-app Received Message: " + jsonMsg + " on topic " + OSMExt.TOPIC_OSM_EXT);
+            SimpleScene.IposMonitoringWrapper iPosMonitoringWrapper = ProtoJsonMap.fromJson(jsonMsg, SimpleScene.IposMonitoringWrapper.class);
+            iPosMonitoringWrapper.getIposMsgRcvEventsList().stream().forEach(iposMsgRcvEvent -> this.handleIPosMsgRcvEvent(iposMsgRcvEvent));
+            iPosMonitoringWrapper.getIposPositionEventsList().stream().forEach(iposPositionEvent -> this.handleIPosPositionEvent(iposPositionEvent));
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void handleIPosMsgRcvEvent(SimpleScene.IposMsgRcvEvent iPosMsgRcvEvent_proto) {
+        OSMObject osmObject_internal = OSMTrans.msgRcvEv_proto2OSMObject(iPosMsgRcvEvent_proto);
+        LOG.info("OSM: Translated IPosMsgRcvEvent to OSMObject: " + osmObject_internal.toString());
+        OSM.handleOSMObject(osmObject_internal);
+    }
+
+    private void handleIPosPositionEvent(SimpleScene.IposPositionEvent iPosPositionEvent_proto) {
+        iPosPositionEvent_proto.getObjectsList().stream().forEach(iposObject -> handleIposObject(iposObject));
+    }
+
+    private void handleIposObject(SimpleScene.IposObject iposObject_proto) {
+        OSMObject osmObject_internal = OSMTrans.posEv_proto2OSMObject(iposObject_proto);
+        LOG.info("OSM: Translated IposObject into OSMObject: " + osmObject_internal.toString());
+        OSM.handleOSMObject(osmObject_internal);
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMTrans.java b/src/main/java/ipos/project/iposextension/osm/OSMTrans.java
new file mode 100644
index 0000000000000000000000000000000000000000..67e6d3a97ade1fb821ebdcb8a266b98d8fdc9d18
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMTrans.java
@@ -0,0 +1,201 @@
+package ipos.project.iposextension.osm;
+
+import ipos.models.OSM;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.*;
+import org.apache.logging.log4j.LogManager;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class OSMTrans {
+    private static IPosDevKitFactory devKitFactory = IPosDevKitFactory.eINSTANCE;
+    private static OSMFactory osmFactory = OSMFactory.eINSTANCE;
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    public static OSMMonitoringTarget osmMonTarget_proto2internal(OSM.OSMMonitoringTarget osmMonitoringTarget_proto) {
+        OSMMonitoringTarget osmMonitoringTarget_internal = osmFactory.createOSMMonitoringTarget();
+        osmMonitoringTarget_internal.setMonitoringTaskId(osmMonitoringTarget_proto.getMonitorintTaskId());
+        osmMonitoringTarget_internal.setProtocol(osmMonitoringTarget_proto.getProtocol());
+        return osmMonitoringTarget_internal;
+    }
+
+   public static OSM.OSMObject osmObject_internal2proto(OSMObject osmObject_internal) {
+       OSM.OSMObject.Builder osmObject_proto = OSM.OSMObject.newBuilder();
+       if(null != osmObject_internal.getId()) osmObject_proto.setId(osmObject_internal.getId());
+       if(null != osmObject_internal.getSensorId()) osmObject_proto.setSensorId(osmObject_internal.getSensorId());
+       if(null != osmObject_internal.getType()) osmObject_proto.setType(osmObject_internal.getType());
+       if(null != osmObject_internal.getSensorType()) osmObject_proto.setSensorType(osmObject_internal.getSensorType());
+       if(null != osmObject_internal.getLastPosUpdate()) osmObject_proto.setLastPosUpdate(osmObject_internal.getLastPosUpdate());
+       if(null != osmObject_internal.getOsmposition()) osmObject_proto.setPosition(osmposition_internal2proto(osmObject_internal.getOsmposition()));
+       if(null != osmObject_internal.getOsmorientation()) osmObject_proto.setOrientation(osmorientation_internal2proto(osmObject_internal.getOsmorientation()));
+       if(null != osmObject_internal.getOsmzonedescriptor()) osmObject_proto.addAllZoneDescriptors(osmObject_internal.getOsmzonedescriptor().stream().map(OSMTrans::zdescr_osm2proto).collect(Collectors.toList()));
+       if(null != osmObject_internal.getOsmextractedattributes()) osmObject_proto.setExtractedAttributes(exAtr_internal2proto(osmObject_internal.getOsmextractedattributes()));
+       return osmObject_proto.build();
+   }
+
+    private static OSM.OSMExtractedAttributes exAtr_internal2proto(OSMExtractedAttributes osmExtractedattributes_internal) {
+        OSM.OSMExtractedAttributes.Builder osmExtractedAttributes_proto = OSM.OSMExtractedAttributes.newBuilder();
+        osmExtractedAttributes_proto.setTheta(osmExtractedattributes_internal.getTheta()); // getTheta default-value: 0.0F
+        osmExtractedAttributes_proto.setBatteryChargeLevel(osmExtractedattributes_internal.getBatteryChargeLevel()); // getBatteryChargeLevel default-value: 0.0F
+        if(null != osmExtractedattributes_internal.getErrors()) {
+            List<Integer> errorsAsList = Arrays.stream(osmExtractedattributes_internal.getErrors()).boxed().collect(Collectors.toList());
+            osmExtractedAttributes_proto.addAllErrors(errorsAsList);
+        }
+        if (null != osmExtractedattributes_internal.getLoadedItems()) {
+            List<Integer> loadsAsList = Arrays.stream(osmExtractedattributes_internal.getLoadedItems()).boxed().collect(Collectors.toList());
+            osmExtractedAttributes_proto.addAllLoadedItems(loadsAsList);
+        }
+        return osmExtractedAttributes_proto.build();
+    }
+
+    private static OSM.OSMZoneDescriptor zdescr_osm2proto(OSMZoneDescriptor osmZoneDescriptor_internal) {
+        OSM.OSMZoneDescriptor.Builder osmZoneDescriptor_proto = OSM.OSMZoneDescriptor.newBuilder();
+        if( null != osmZoneDescriptor_internal.getZoneId()) osmZoneDescriptor_proto.setZoneId(osmZoneDescriptor_internal.getZoneId());
+        if( null != osmZoneDescriptor_internal.getNotificationType()) osmZoneDescriptor_proto.setNotificationType(osmZoneDescriptor_internal.getNotificationType());
+        return osmZoneDescriptor_proto.build();
+    }
+
+    private static OSM.OSMOrientation osmorientation_internal2proto(OSMOrientation osmOrientation_internal) {
+        OSM.OSMOrientation.Builder osmOrientation_proto = OSM.OSMOrientation.newBuilder();
+        osmOrientation_proto.setX(osmOrientation_internal.getX()); // getX default-value: 0.0F
+        osmOrientation_proto.setY(osmOrientation_internal.getY()); // getY default-value: 0.0F
+        osmOrientation_proto.setZ(osmOrientation_internal.getZ()); // getZ default-value: 0.0F
+        osmOrientation_proto.setW(osmOrientation_internal.getW()); // getW default-value: 0.0F
+        return osmOrientation_proto.build();
+    }
+
+    private static OSM.OSMPosition osmposition_internal2proto(OSMPosition osmposition_internal) {
+        OSM.OSMPosition.Builder osmPosition_proto = OSM.OSMPosition.newBuilder();
+        if (null != osmposition_internal.getRefSystemId()) osmPosition_proto.setRefSystemId(osmposition_internal.getRefSystemId());
+        osmPosition_proto.setAccuracy(osmposition_internal.getAccuracy()); // accuracy-default value 0.0F
+        if (null != osmposition_internal.getOsmpoint()) osmPosition_proto.setPoint(osmpoint_internal2proto(osmposition_internal.getOsmpoint()));
+        return osmPosition_proto.build();
+    }
+
+    private static OSM.OSMPoint osmpoint_internal2proto(OSMPoint osmpoint_internal) {
+        OSM.OSMPoint.Builder osmPoint_proto = OSM.OSMPoint.newBuilder();
+        osmPoint_proto.setX(osmpoint_internal.getX());
+        osmPoint_proto.setY(osmpoint_internal.getY());
+        osmPoint_proto.setZ(osmpoint_internal.getZ());
+        return osmPoint_proto.build();
+    }
+
+    public static OSMObject msgRcvEv_proto2OSMObject(SimpleScene.IposMsgRcvEvent iPosMsgRcvEvent_proto) {
+        OSMObject osmObject_internal = osmFactory.createOSMObject();
+        osmObject_internal.setId(iPosMsgRcvEvent_proto.getAgentId());
+        osmObject_internal.setSensorId(iPosMsgRcvEvent_proto.getAgentId()); // Annahme: für VDA5050-artige Protokolle gilt: sensorId == agentId
+        osmObject_internal.setType(""); // Annahme: VDA5050-artige Protokolle schicken zwar meist Nachrichten von AGVs, geben aber den Agententyp typischerweise nicht an
+        osmObject_internal.setSensorType(""); // Annahme: VDA5050-artige Protokolle berechnen zwar die Position aber schicken nicht unbedingt die Information Sensortype mit
+        osmObject_internal.setLastPosUpdate(iPosMsgRcvEvent_proto.getLastPosUpdate());
+        if (null != iPosMsgRcvEvent_proto.getLastKnownPosition()) {
+            OSMPosition osmPosition = position_proto2OSM(iPosMsgRcvEvent_proto.getLastKnownPosition());
+            osmObject_internal.setOsmposition(osmPosition);
+        }
+        if (null != iPosMsgRcvEvent_proto.getLastKnownOrientation()) {
+            OSMOrientation osmOrientation = orientation_proto2OSM(iPosMsgRcvEvent_proto.getLastKnownOrientation());
+            osmObject_internal.setOsmorientation(osmOrientation);
+        }
+        if (null != iPosMsgRcvEvent_proto.getLastKnownZoneDescriptorsList()) osmObject_internal.getOsmzonedescriptor().addAll(iPosMsgRcvEvent_proto.getLastKnownZoneDescriptorsList().stream().map(OSMTrans::zoneDescr_proto2OSM).collect(Collectors.toList()));
+        if (null != iPosMsgRcvEvent_proto.getExtractedAttributesList()) osmObject_internal.setOsmextractedattributes(exAtr_proto2OSM(iPosMsgRcvEvent_proto.getExtractedAttributesList()));
+        return osmObject_internal;
+    }
+
+    private static OSMExtractedAttributes exAtr_proto2OSM(List<SimpleScene.Attribute> extractedAttributes_proto) {
+        OSMExtractedAttributes osmExtractedAttributes = osmFactory.createOSMExtractedAttributes();
+        for (SimpleScene.Attribute attribute : extractedAttributes_proto) {
+            extractProtoAttributeIntoOSMAtr(osmExtractedAttributes, attribute);
+        }
+        return osmExtractedAttributes;
+    }
+
+    private static void extractProtoAttributeIntoOSMAtr(OSMExtractedAttributes osmExtractedAttributes, SimpleScene.Attribute attribute) {
+        try {
+            switch (attribute.getName()) {
+                case "batteryCharge":
+                    osmExtractedAttributes.setBatteryChargeLevel(Float.parseFloat(attribute.getData()));
+                    break;
+                case "theta":
+                    osmExtractedAttributes.setTheta(Float.parseFloat(attribute.getData())); break;
+                case "loads":
+                    osmExtractedAttributes.setLoadedItems(parseIntArray(attribute.getData())); break;
+                case "errors":
+                    osmExtractedAttributes.setErrors(parseIntArray(attribute.getData())); break;
+                default:
+                    LOG.info("Unknown extracted attribute: " + attribute.getName()); break;
+            }
+        } catch(NumberFormatException e){
+            LOG.info("Warning: Extracted attribute " + attribute.getName() + " could not be parsed: " + e.getMessage());
+        }
+    }
+
+    private static int[] parseIntArray(String data) {
+        String[] stringArray = data
+                .replaceAll("\\[", "")
+                .replaceAll("]", "")
+                .replaceAll("\\s+","") // removing whitespace
+                .split(",");
+        int[] intArray = new int[stringArray.length];
+        for (int i = 0; i < stringArray.length; i++) {
+             intArray[i] = Integer.parseInt(stringArray[i]);
+        }
+        return intArray;
+    }
+
+    private static OSMZoneDescriptor zoneDescr_proto2OSM(SimpleScene.IposZoneDescriptor iposZoneDescriptor) {
+        OSMZoneDescriptor osmZoneDescriptor = osmFactory.createOSMZoneDescriptor();
+        osmZoneDescriptor.setZoneId(iposZoneDescriptor.getZoneId());
+        osmZoneDescriptor.setNotificationType(iposZoneDescriptor.getNotificationType());
+        return osmZoneDescriptor;
+    }
+
+    private static OSMOrientation orientation_proto2OSM(SimpleScene.IposSimpleOrientation lastKnownOrientation) {
+        OSMOrientation orientation = osmFactory.createOSMOrientation();
+        orientation.setX(lastKnownOrientation.getX()); // getX-default: 0F
+        orientation.setY(lastKnownOrientation.getY());
+        orientation.setZ(lastKnownOrientation.getZ());
+        orientation.setW(lastKnownOrientation.getW());
+        return orientation;
+    }
+
+    private static OSMPosition position_proto2OSM(SimpleScene.IposPosition position_proto) {
+        OSMPosition position = osmFactory.createOSMPosition();
+        position.setRefSystemId(position_proto.getRefSystemId());
+        position.setAccuracy(position_proto.getAccuracy());
+        position.setOsmpoint(point_proto2OSM(position_proto.getPoint()));
+        return position;
+    }
+
+    private static OSMPoint point_proto2OSM(SimpleScene.IposPoint3D point_proto) {
+        OSMPoint osmPoint = osmFactory.createOSMPoint();
+        osmPoint.setX(point_proto.getX());
+        osmPoint.setY(point_proto.getY());
+        osmPoint.setZ(point_proto.getZ());
+        return osmPoint;
+    }
+
+
+    public static OSMObject posEv_proto2OSMObject(SimpleScene.IposObject iposObject_proto) {
+        OSMObject osmObject_internal = osmFactory.createOSMObject();
+        osmObject_internal.setId(iposObject_proto.getId());
+        osmObject_internal.setSensorId(iposObject_proto.getSensorId());
+        osmObject_internal.setType(iposObject_proto.getType());
+        osmObject_internal.setSensorType(iposObject_proto.getSensorType());
+        osmObject_internal.setLastPosUpdate(iposObject_proto.getLastPosUpdate());
+        if (null != iposObject_proto.getPosition()) {
+            OSMPosition osmPosition = position_proto2OSM(iposObject_proto.getPosition());
+            osmObject_internal.setOsmposition(osmPosition);
+        }
+        if (null != iposObject_proto.getOrientation()) {
+            OSMOrientation osmOrientation = orientation_proto2OSM(iposObject_proto.getOrientation());
+            osmObject_internal.setOsmorientation(osmOrientation);
+        }
+        if (null != iposObject_proto.getZoneDescriptorsList()) {
+            osmObject_internal.getOsmzonedescriptor().addAll(
+                    iposObject_proto.getZoneDescriptorsList().stream().map(OSMTrans::zoneDescr_proto2OSM).collect(Collectors.toList()));
+        }
+        return osmObject_internal;
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/Tooz.java b/src/main/java/ipos/project/iposextension/tooz/Tooz.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4a1adf11847fbddde4053fb303942ccb0659de3
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/Tooz.java
@@ -0,0 +1,155 @@
+package ipos.project.iposextension.tooz;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozFactory;
+import ipos.project.devkit.iposext.IPosArguments;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.OtherUtility;
+import org.apache.logging.log4j.LogManager;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.util.*;
+
+@Component
+public class Tooz {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    public static final String TOPIC_TOOZEXT_OUTPUT = "SmartGlassesBackend";
+    public static final String SERIALIZATIONTYPE_TOOZEXT_OUTPUT = "json";
+    public static final String TOOZ_MONREQ = "{\"monitoringRequests\": [{\"id\": [\"%s\"], \"properties\": [\"distance\"], \"monitoringTaskId\": \"%s\", \"refSystemId\": \"ROOT\", \"serializationType\": \"json\"}]}";
+    public static final String TOOZ_MONITORINGTASKID = "tooz_distances";
+    // public static final String TOPIC_TOOZ_EXT = "TOOZ_TEST_MONITORING";
+    public static final String TOPIC_TOOZ_ENVIRONMENT = "TOOZ_ENVIRONMENT";
+    public static final String TOPIC_TOOZ_EXT_OUTPUT = "TOOZ_EXT_OUTPUT";
+    public static final String STOMP_BLUETOOTH_NAME = "IPOS_IPS";
+    public static final String SERIALIZATION_TYPE_JSON = "json";
+    public static final String TOOZ_SERVICE_APPLICATION_DESTINATION_PREFIX = "/medical_ar_app";
+    public static final String TOOZ_SERVICE_GLASS_ID = "/id_of_the_tooz_glass_the_service_should_send_information_to"; // see de.tu.dresden.swt.medical.ar.service.controller.PublicWebSocketMessagesController.glassChannelMessage
+    public static final String TOOZ_STOMP_URI = "ws://localhost:8000/medical_ar-websocket"; // see C:\Users\Admin\Promotion\IPos\ar-support-in-medical-environments\Service\src\test\java\testutility\WSTest.java
+
+    private static ToozFactory toozFactory = ToozFactory.eINSTANCE;
+    private Timer timer;
+
+    /**
+     * This IPos extension manages for certain monitoring targets (so called local agents) a list of distant entities,
+     * including their respective distance from the local agent, based on
+     * rawdata information that is provided to this extension by the IPos-FW. Repeatedly, after a
+     * regular interval, for each local agent the nearest distant entity is determined. The id of this entity is
+     * provided to the Tooz backend service.
+     *
+     * ToozIPosRawdataMqtt.handleIPosUWBEvent(...): rawdata handling, distances are updated
+     * ToozExtInputMqtt.handleToozExtInput(...): new local agents are registered
+     * Tooz.updateToozBackend(...): for each local agent the closest distant entity is determined. Tooz backend service is updated
+     * ToozExtOutputStomp.transmitDistantEntity(...) Tooz Backend service is updated
+     *
+     * @param mqttService
+     */
+    @Autowired
+    public Tooz(ExternalPubServiceImpl mqttService) {
+        toozExt.setMqttService(mqttService);
+        ToozIPosRawdataMqtt.setMqttService(mqttService);
+        ToozExtInputMqtt.setMqttService(mqttService);
+        ToozExtOutputMqtt.setMqttService(mqttService);
+        startUpdateTimer();
+    }
+
+//    ich könnte noch machen: gleich die NFC bzw. RFID-Rohdatenübertragung einbauen, dann muss ich mich später nicht erst lange einarbeiten
+
+    private void startUpdateTimer() {
+        timer = new Timer();
+        timer.scheduleAtFixedRate(new TimerTask() {
+            @Override
+            public void run(){
+                updateToozBackend();
+            }
+        }, 0, 3000);
+    }
+
+    static private ToozExt toozExt = new ToozExt();
+
+    public static void handleIPosBTEvent(IPosBTEvent iPosBTEvent){
+        handleIPosBeaconEvent((IPosBeaconEvent) iPosBTEvent);
+    }
+
+    public static void handleIPosUWBEvent(IPosUWBEvent iPosUWBEvent) {
+        handleIPosBeaconEvent((IPosBeaconEvent) iPosUWBEvent);
+    }
+
+    public static void handleIPosBeaconEvent(IPosBeaconEvent iPosBeaconEvent){
+        try {
+            toozExt.handleRawdataEvent(iPosBeaconEvent);
+        } catch (RuntimeException e) {
+            LOG.info(e.getMessage());
+        }
+    }
+
+    public static void processMonTargetTestdata(String path_to_monTarget_file) {
+        File monTargetFile = new File(path_to_monTarget_file);
+        for (String line : OtherUtility.readLines(monTargetFile)) {
+            ToozExtInputMqtt.handleToozExtInput(line);
+        }
+    }
+
+    /**
+     * This function configures the IPos-IPS to receive and forward location information concerning
+     * a monitoring target (i.e., a position sensor with a particular ID). Location information
+     * may be the distances of the monitoring target from particular distant entities.
+     * @param monitoringTarget_internal
+     */
+    public static void handleMonitoringTarget(MonitoringTarget monitoringTarget_internal) {
+        LOG.info("TOOZ: Attempting to configure IPos-IPS for monitoring the location of the sensor with id " + monitoringTarget_internal.getTargetSensorId());
+        IPosArguments.IPosConfigData toozConf = new ToozArgs.ToozConf(monitoringTarget_internal);
+        toozExt.configureIpos(toozConf);
+        ToozLocalAgent newlyRegisteredTarget = new ToozLocalAgent(monitoringTarget_internal.getTargetSensorId());
+        toozExt.getAllCurrentlyMonitoredTargets().add(newlyRegisteredTarget);
+    }
+
+    public static void updateToozBackend() {
+        LOG.info("TOOZ: Updating tooz-backend");
+        List<ToozLocalAgent> allCurrentlyMonitoredTargets = toozExt.getAllCurrentlyMonitoredTargets();
+        allCurrentlyMonitoredTargets.stream().forEach(monitoredTarget -> updateToozBackendForTarget(monitoredTarget));
+    }
+
+    private static void updateToozBackendForTarget(ToozLocalAgent monitoredTarget) {
+        if (!monitoredTarget.hasChangedSinceLastUpdate()){
+            return;
+        }
+        List<Map.Entry<String, Double>> sortedDistances = extractSortedDistances(monitoredTarget);
+        if (sortedDistances.size() == 0){
+            LOG.info("Could not update Tooz-backend for monitoring Target " + monitoredTarget.getTargetSensorId() + " as no distant entities are known yet.");
+            return;
+        }
+        Map.Entry<String, Double> nearestDistantEntity = sortedDistances.get(0);
+        DistantEntity distantEntity = createDistantEntityFromMonitoredTarget(monitoredTarget, nearestDistantEntity);
+        LOG.info("TOOZ: The closest distant entity of monitoring target " + monitoredTarget.getTargetSensorId() + " has changed. Id of closest entity: " + distantEntity.getDistantEntityId() + "; distance of closest entity: " + distantEntity.getDistance() + "; all known distances for this monitoring target: " + monitoredTarget.getCopyOfDistances().values());
+        //ToozExtOutputMqtt.transmitDistantEntity(distantEntity, TOPIC_TOOZ_EXT_OUTPUT, SERIALIZATION_TYPE_JSON);
+        ToozExtOutputStomp.transmitDistantEntity(distantEntity, TOPIC_TOOZ_EXT_OUTPUT);
+        monitoredTarget.setHasChangedSinceLastUpdate(false); // Tooz-backend has been updated and is up-to-date now, so we regard the monitoredTarget as not having changed since last update
+        return;
+    }
+
+    private static DistantEntity createDistantEntityFromMonitoredTarget(ToozLocalAgent monitoredTarget, Map.Entry<String, Double> nearestDistantEntity) {
+        DistantEntity distantEntity = toozFactory.createDistantEntity();
+        distantEntity.setLocalSensorId(monitoredTarget.getTargetSensorId());
+        distantEntity.setLocalAgentId(monitoredTarget.getLocalAgentId());
+        distantEntity.setDistantEntityId(nearestDistantEntity.getKey());
+        distantEntity.setDistance(nearestDistantEntity.getValue());
+        distantEntity.setProximityIndex(0);
+        distantEntity.setEntityData(new HashMap<>());
+        distantEntity.setTimeStamp(monitoredTarget.getTimestamp());
+        return distantEntity;
+    }
+
+    private static List<Map.Entry<String, Double>> extractSortedDistances(ToozLocalAgent monitoredTarget) {
+        List<Map.Entry<String, Double>> toBeSortedDistancesList = new LinkedList<>();
+        toBeSortedDistancesList.addAll(monitoredTarget.getCopyOfDistances().entrySet());
+        Collections.sort(toBeSortedDistancesList, (e1, e2) -> e1.getValue().compareTo(e2.getValue()));
+        return toBeSortedDistancesList;
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozArgs.java b/src/main/java/ipos/project/iposextension/tooz/ToozArgs.java
new file mode 100644
index 0000000000000000000000000000000000000000..463ba7cb8eaccbc0ac39d83a5baa692e59dc6583
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozArgs.java
@@ -0,0 +1,21 @@
+package ipos.project.iposextension.tooz;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget;
+import ipos.project.devkit.iposext.IPosArguments;
+
+public class ToozArgs {
+
+    public static class ToozConf implements IPosArguments.IPosConfigData {
+
+        MonitoringTarget monitoringTarget;
+        public MonitoringTarget getMonitoringTargets() {
+            return monitoringTarget;
+        }
+
+        public ToozConf(MonitoringTarget monitoringTarget) {
+            this.monitoringTarget = monitoringTarget;
+        }
+
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozExt.java b/src/main/java/ipos/project/iposextension/tooz/ToozExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..6046133062ebcc160c37c749f40164ea5549549f
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozExt.java
@@ -0,0 +1,139 @@
+package ipos.project.iposextension.tooz;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.*;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget;
+import ipos.project.devkit.iposext.IPosArguments;
+import ipos.project.devkit.iposext.IPosExtension;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import ipos.project.iposextension.tooz.websocket.WebSocketService;
+import org.apache.logging.log4j.LogManager;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import static ipos.project.iposextension.tooz.Tooz.TOOZ_MONITORINGTASKID;
+
+public class ToozExt extends IPosExtension {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    public ToozExt() {
+        initStomp();
+    }
+
+    private WebSocketService webSocketService;
+
+    protected List<ToozLocalAgent> getAllCurrentlyMonitoredTargets() {
+        return allCurrentlyMonitoredTargets;
+    }
+
+    private List<ToozLocalAgent> allCurrentlyMonitoredTargets = new LinkedList<>();
+
+    @Override
+    public void handlePositionEvent(IposPositionEvent posEvent) {}
+
+    @Override
+    public void handlePositionEvent(IposPositionEvent posEvent, IPosArguments.HandlePosEventConf posEventConf) {}
+
+    @Override
+    public void handleRawdataEvent(IPosRawdataEvent iPosRawdataEvent) {
+        if (iPosRawdataEvent instanceof IPosUWBEvent){
+            handleIPosUWBEvent((IPosUWBEvent) iPosRawdataEvent);
+        }
+        if (iPosRawdataEvent instanceof IPosBTEvent){
+            handleIPosBTEvent((IPosBTEvent) iPosRawdataEvent);
+        }
+    }
+
+    private void handleIPosBTEvent(IPosBTEvent iPosRawdataEvent) {
+        IPosBTEvent iPosBTEvent = iPosRawdataEvent;
+        if ((iPosBTEvent.getDistances().size() == 0) && (iPosBTEvent.getRss().size() == 0)){
+            LOG.info("Ignoring IPosBTEvent, as it neither contains distances nor rss-values");
+            return;
+        }
+        if ((iPosBTEvent.getDistances().size() == 0) && (iPosBTEvent.getRss().size() > 0)) {
+            iPosBTEvent.setDistances(translateRssToDistances(iPosBTEvent));
+        }
+        handleIPosBeaconEvent((IPosBeaconEvent) iPosBTEvent);
+    }
+
+    private void handleIPosUWBEvent(IPosUWBEvent iPosRawdataEvent) {
+        IPosUWBEvent iPosUWBEvent = iPosRawdataEvent;
+        if (iPosUWBEvent.getDistances().size() > 0) {
+            handleIPosBeaconEvent((IPosBeaconEvent) iPosUWBEvent);
+        }else{
+            LOG.info("Ignoring IPosUWBEvent as it does not contain any distances");
+        }
+    }
+
+    private Map<String, Double> translateRssToDistances(IPosBTEvent iPosBTEvent) {
+        // currently rss is incorrectly translated into distances by creating a copy
+        return iPosBTEvent.getRss();
+    }
+
+    @Override
+    public SimpleScene.IposConfigWrapper prepareConfigWrapper(IPosArguments.IPosConfigData iposConfigData) {
+        ToozArgs.ToozConf toozConf = (ToozArgs.ToozConf) iposConfigData;
+        MonitoringTarget monitoringTarget = toozConf.getMonitoringTargets();
+        return createConfigWrapperFromMonitoringTarget(monitoringTarget);
+    }
+
+    private SimpleScene.IposConfigWrapper createConfigWrapperFromMonitoringTarget(MonitoringTarget monitoringTarget) {
+        String monitoringRequest = String.format(Tooz.TOOZ_MONREQ, monitoringTarget.getTargetSensorId(), TOOZ_MONITORINGTASKID);
+        try {
+            return ProtoJsonMap.fromJson(monitoringRequest, SimpleScene.IposConfigWrapper.class);
+        } catch (InvalidProtocolBufferException e) {
+            LOG.info("Warning: IPos-IPS could not be configured properly, as there was a MonitoringTarget that no ConfigWrapper could be created from.");
+            return null;
+        }
+    }
+
+    protected void handleIPosBeaconEvent(IPosBeaconEvent iPosBeaconEvent) {
+        LOG.info("TOOZ: Attempting to handle IPosBeaconEvent (class: " + iPosBeaconEvent.getClass().getName());
+        ToozLocalAgent toozLocalAgent = fetchMonitoringTarget(iPosBeaconEvent);
+        toozLocalAgent.addOrUpdateDistances(iPosBeaconEvent.getDistances());
+        toozLocalAgent.setLocalAgentId(iPosBeaconEvent.getAgentId());
+        toozLocalAgent.setTimestamp(iPosBeaconEvent.getTimeStamp()); // the time when the distances to the distant entities have been updated the previous time
+        LOG.info("TOOZ: ToozExt received rawdata event: " + iPosBeaconEvent.getClass().getName() +
+                ". Monitoring target (sensorId): " + iPosBeaconEvent.getSensorId() +
+                ", agent: " + iPosBeaconEvent.getAgentId() + ", timestamp: " +
+                iPosBeaconEvent.getTimeStamp());
+    }
+
+    private ToozLocalAgent fetchMonitoringTarget(IPosBeaconEvent iPosUWBEvent) {
+        String targetSensorId = iPosUWBEvent.getSensorId();
+        ToozLocalAgent localAgent = allCurrentlyMonitoredTargets.stream().filter(
+                monTarget -> monTarget.getTargetSensorId().equals(targetSensorId))
+                .findFirst().
+                orElseThrow(() -> new RuntimeException("Warning: ToozExt received rawdata from a position sensor that no MonitoringTarget was defined for"));
+        return localAgent;
+    }
+
+    public void initStomp(){
+        webSocketService = new WebSocketService();
+        ToozExtOutputStomp.setToozExt(this);
+        LOG.info("Tooz-extension of IPos-FW is attempting to connect to STOMP broker with URI " + Tooz.TOOZ_STOMP_URI + " ( ws://ip:port/endpoint )");
+        webSocketService.reconnectWebSocket(Tooz.TOOZ_STOMP_URI, 1000);
+    }
+    public void requestPatientInfoFromServiceForGlasses(String _destination, String _patientId) {
+        try {
+            Objects.requireNonNull(webSocketService);
+            String patientId = Objects.requireNonNull(_patientId);
+            String destination = Objects.requireNonNull(_destination);
+            _requestPatientInfoFromServiceForGlasses(destination, patientId);
+        } catch (NullPointerException e) {
+            LOG.info("Warning: Could not request patient information from tooz-backend for glasses. Possible reasons: (1) STOMP was not propertly initialized, (2) patient id was null.");
+        }
+    }
+
+    private void _requestPatientInfoFromServiceForGlasses(String destination, String patientId){
+        LOG.info("Tooz-extension of IPos-FW requests the tooz backend service to publish relevant information for distant agent with id " + patientId + " to the tooz smart glasses with id: " + Tooz.TOOZ_SERVICE_GLASS_ID + ". Destination prefix of the backend service: " + Tooz.TOOZ_SERVICE_APPLICATION_DESTINATION_PREFIX);
+        LOG.info("Resulting destination of the tooz backend service: " + destination);
+        webSocketService.requestPatientInfoFromServiceForGlasses(destination, patientId);
+    }
+
+
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozExtInputMqtt.java b/src/main/java/ipos/project/iposextension/tooz/ToozExtInputMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..f852b72883ef1b5df4ccf8246d2d90aac65551cc
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozExtInputMqtt.java
@@ -0,0 +1,42 @@
+package ipos.project.iposextension.tooz;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+@MqttListener(Tooz.TOPIC_TOOZ_ENVIRONMENT)
+public class ToozExtInputMqtt implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static ExternalPubServiceImpl mqttService;
+    public static void setMqttService(ExternalPubServiceImpl mqttService) {
+        ToozExtInputMqtt.mqttService = mqttService;
+    }
+
+  @Override
+    public void handle(MqttMessage message) {
+        handleToozExtInput(message.toString());
+    }
+
+    public static void handleToozExtInput(String jsonMsg) {
+        LOG.info("TOOZ: Handling ToozExtInput: " + jsonMsg);
+        ipos.models.Tooz.IPosToozExtInputWrapper toozInputWrapper = null;
+        try {
+            toozInputWrapper = ProtoJsonMap.fromJson(jsonMsg, ipos.models.Tooz.IPosToozExtInputWrapper.class);
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        }
+        toozInputWrapper.getMonitoringTargetsList().forEach(monitoringTarget -> handleMonitoringTarget(monitoringTarget));
+    }
+
+    private static void handleMonitoringTarget(ipos.models.Tooz.MonitoringTarget monitoringTarget_proto) {
+        MonitoringTarget monitoringTarget_internal = ToozTrans.monTarget_proto2internal(monitoringTarget_proto);
+        Tooz.handleMonitoringTarget(monitoringTarget_internal);
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputMqtt.java b/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..42dbe7a367c939f15a3088d04e6bd44515b14f4c
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputMqtt.java
@@ -0,0 +1,35 @@
+package ipos.project.iposextension.tooz;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.OtherUtility;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+@MqttListener(Tooz.TOPIC_TOOZ_EXT_OUTPUT)
+public class ToozExtOutputMqtt implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static ExternalPubServiceImpl mqttService;
+    public static void setMqttService(ExternalPubServiceImpl mqttService) {
+        ToozExtOutputMqtt.mqttService = mqttService;
+    }
+
+   @Override
+    public void handle(MqttMessage message) {}
+
+    public static void transmitDistantEntity(DistantEntity distantEntity_internal, String topic, String serializationType){
+        ipos.models.Tooz.DistantEntity distantEntity_proto = ToozTrans.distantEntity_internal2proto(distantEntity_internal);
+        logging_tooz(topic, serializationType, distantEntity_proto);
+        OtherUtility.publishRespectingSerializationType(topic, serializationType, distantEntity_proto);
+    }
+
+    private static void logging_tooz(String topic, String serializationType, ipos.models.Tooz.DistantEntity distantEntity_proto) {
+        LOG.info("TOOZ: Publishing " + distantEntity_proto.getClass().getName() + " on topic " + topic + " with serialization type " + serializationType);
+        LOG.info("TOOZ: ");
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputStomp.java b/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputStomp.java
new file mode 100644
index 0000000000000000000000000000000000000000..65e6693626d8192b2e5b36c8cf16d7258a3a8b86
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozExtOutputStomp.java
@@ -0,0 +1,50 @@
+package ipos.project.iposextension.tooz;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity;
+import org.apache.logging.log4j.LogManager;
+
+import java.util.Objects;
+// import de.tu.dresden.swt.medical.ar.toozer_app_java.websocket.WebSocketService.StompSessionHandler;
+
+
+
+// webSocketService.setBluetoothName(Tooz.IPOS_IPS);
+
+public class ToozExtOutputStomp {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    static private ToozExt toozExt;
+
+    /**
+     * The web-socket-client to handle stomp-messages.
+     */
+   // private final ___StompSessionClient stompSessionClient = new ___StompSessionClient(new StompSessionHandler());
+
+    static void setToozExt(ToozExt _toozExt){
+        toozExt = Objects.requireNonNull(_toozExt);
+    }
+
+    static void transmitDistantEntity(DistantEntity _distantEntity, String _topicToozExtOutput) {
+        try {
+            Objects.requireNonNull(toozExt);
+            DistantEntity distantEntity = Objects.requireNonNull(_distantEntity);
+            String topicToozExtOutput = Objects.requireNonNull(_topicToozExtOutput);
+            _transmitDistantEntity(distantEntity, topicToozExtOutput);
+        }catch(NullPointerException e){
+            LOG.info("Warning: Could not transmit information on distant entity to tooz-backend. Possible reasons: (1) STOMP was not propertly initialized, (2) distant entity or topic was null.");
+        }
+    }
+
+    static void _transmitDistantEntity(DistantEntity distantEntity, String topicToozExtOutput) {
+        String destination = Tooz.TOOZ_SERVICE_APPLICATION_DESTINATION_PREFIX + Tooz.TOOZ_SERVICE_GLASS_ID;
+        String stompMessageContent = distantEntity.getDistantEntityId(); //patientId, see ipos.project.iposextension.tooz.Tooz.createDistantEntityFromMonitoredTarget
+        LOG.info("TOOZ: Attempting to transmit STOMP message containing distant entity ID " + stompMessageContent + " to destination " + destination);
+        toozExt.requestPatientInfoFromServiceForGlasses(destination, stompMessageContent);
+
+        // Message patientIdMessage = new Message(MessageType.PATIENT_ID, stompMessageContent);
+        // ToozController.sendMessageToService(destination, patientIdMessage);
+        //webSocketService.getPatientWithBeaconId(distantEntity.getDistantEntityId())
+
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozIPosRawdataMqtt.java b/src/main/java/ipos/project/iposextension/tooz/ToozIPosRawdataMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..5fc8257ff8a0e23d77aa7f4e63bac879c5bdbe1a
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozIPosRawdataMqtt.java
@@ -0,0 +1,58 @@
+package ipos.project.iposextension.tooz;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.GenericSensor;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+@MqttListener(Tooz.TOOZ_MONITORINGTASKID)
+public class ToozIPosRawdataMqtt implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static ExternalPubServiceImpl mqttService;
+    public static void setMqttService(ExternalPubServiceImpl mqttService) {
+        ToozIPosRawdataMqtt.mqttService = mqttService;
+    }
+
+    // für den generierten code ggf. noch eine höhere Wrapper-Ebene vorsehen: IPosInputWrapper (enthält sowohl PositionWrapper, als auch RawdataWrapper)
+    // für den generierten code auch vorsehen: eigene XMqtt-Klasse für jeden Wrapper generieren der empfangen werden können soll.
+    // Also eine Klasse für den IPosInputWrapper und eine andere Klasse für den IPosToozExtInputWrapper. Für die Wrapper-Abbildung in EMF ggf. mit Packages arbeiten
+    // Es gibt Wrapper die nur ausgehende Nachrichten beinhalten (z.B. bei der tooz-Anwendung: ToozExtOutputWrapper), man muss beim Generieren festlegen können ob
+    // die Wrapper-Nachrichten überhaupt empfangen werden sollen
+    @Override
+    public void handle(MqttMessage message) {
+        LOG.info("TOOZ: ToozIPosRawdataMqtt received message: " + message.toString());
+        handleIPosRawdataWrapper(message.toString());
+    }
+
+    // generierter code: grundsätzlich für jede mögliche Nachricht etwas generieren, nicht nur für IPosUWBEvent
+    private void handleIPosRawdataWrapper(String jsonMsg) {
+        try {
+            GenericSensor.IPosRawdataEventWrapper iPosRawdataEventWrapper = ProtoJsonMap.fromJson(jsonMsg, GenericSensor.IPosRawdataEventWrapper.class);
+            iPosRawdataEventWrapper.getIPosUWBEventList().stream().forEach(iPosUWBEvent -> this.handleIPosUWBEvent(iPosUWBEvent));
+            iPosRawdataEventWrapper.getIPosBTEventList().stream().forEach(iPosBTEvent -> this.handleIPosBTEvent(iPosBTEvent));
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void handleIPosBTEvent(GenericSensor.IPosBTEvent iPosBTEvent_proto) {
+        IPosBTEvent iPosBTEvent_internal = ToozTrans.bt_proto2IPosRawdata(iPosBTEvent_proto);
+        LOG.info("TOOZ: BTEvent was transformed into internal data format: " + iPosBTEvent_internal.toString());
+        Tooz.handleIPosBTEvent(iPosBTEvent_internal);
+    }
+
+    private void handleIPosUWBEvent(GenericSensor.IPosUWBEvent iPosUWBEvent_proto) {
+        IPosUWBEvent iPosUWBEvent_internal = ToozTrans.uwb_proto2IPosRawdata(iPosUWBEvent_proto);
+        LOG.info("TOOZ: UWBEvent was transformed into internal data format: " + iPosUWBEvent_internal.toString());
+        Tooz.handleIPosUWBEvent(iPosUWBEvent_internal);
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java b/src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java
new file mode 100644
index 0000000000000000000000000000000000000000..094b636e0ef0c1b8d37a2dce741e183266d6f7df
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java
@@ -0,0 +1,91 @@
+package ipos.project.iposextension.tooz;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ToozLocalAgent {
+
+    public ToozLocalAgent(String targetSensorId) {
+        this.targetSensorId = targetSensorId;
+        this.targetData = new HashMap<>();
+        this.localAgentId = "";
+        this.timestamp = "";
+        this.hasChanged = false;
+    }
+
+    private Map<String, Double> distances = new HashMap<>();
+
+    public String getTimestamp() {
+        return timestamp;
+    }
+
+    public void setTimestamp(String timestamp) {
+        this.timestamp = timestamp;
+    }
+
+    private String timestamp; // the time when the distances to the distant entities have been updated the previous time
+
+    /**
+     * Returns true if this instance of ToozLocalAgent has to be regarded as having changed since the last
+     * update of the Tooz-backend, and false otherwise.
+     * @return
+     */
+    public boolean hasChangedSinceLastUpdate() {
+        return hasChanged;
+    }
+
+    /**
+     * Sets the boolean value that defines whether this instance of ToozLocalAgent has to be
+     * regarde as having changed since last update of the Tooz-backend
+     * @param hasChanged
+     */
+    public void setHasChangedSinceLastUpdate(boolean hasChanged) {
+        this.hasChanged = hasChanged;
+    }
+
+    private boolean hasChanged;
+
+    private String localAgentId;
+    Map<String, String> targetData;
+
+    protected Map<String, Double> getCopyOfDistances() {
+        HashMap<String, Double> copyOfDistances = new HashMap<>();
+        copyOfDistances.putAll(distances);
+        return copyOfDistances;
+    }
+
+     protected void addDistance(String sensorId, Double distance){
+        distances.put(sensorId, distance);
+    }
+
+    public String getTargetSensorId() {
+        return targetSensorId;
+    }
+
+    private String targetSensorId;
+
+    public void addOrUpdateDistances(Map<String, Double> map){
+        if (map.size() > 0) {
+            map.entrySet().forEach(entry -> distances.put(entry.getKey(), entry.getValue())); // put-function creates new entry, or updates existing one
+            this.hasChanged = true;
+        }
+    }
+
+    public String getLocalAgentId() {
+        return localAgentId;
+    }
+
+    public void setLocalAgentId(String localAgentId) {
+        this.localAgentId = localAgentId;
+    }
+
+
+    public Map<String, String> getTargetData() {
+        return targetData;
+    }
+
+    public void setTargetData(Map<String, String> targetData) {
+        this.targetData = targetData;
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozTrans.java b/src/main/java/ipos/project/iposextension/tooz/ToozTrans.java
new file mode 100644
index 0000000000000000000000000000000000000000..84160f3ca63aba111a54b83b495debf3fa91b82c
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozTrans.java
@@ -0,0 +1,68 @@
+package ipos.project.iposextension.tooz;
+
+import ipos.models.GenericSensor;
+import ipos.models.Tooz;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBTEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosBeaconEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget;
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ToozTrans {
+    private static IPosDevKitFactory devKitFactory = IPosDevKitFactory.eINSTANCE;
+    private static ToozFactory toozFactory = ToozFactory.eINSTANCE;
+
+
+    public static IPosUWBEvent uwb_proto2IPosRawdata(GenericSensor.IPosUWBEvent iPosUWBEvent_proto) {
+        IPosUWBEvent iPosUWBEvent_internal = devKitFactory.createIPosUWBEvent();
+        return ToozTrans.beacon_proto2IPosRawdata(iPosUWBEvent_internal, iPosUWBEvent_proto.getAgentId(), iPosUWBEvent_proto.getSensorId(), iPosUWBEvent_proto.getAgentType(), iPosUWBEvent_proto.getSensorType(), iPosUWBEvent_proto.getTimeStamp(), iPosUWBEvent_proto.getDistancesMap());
+    }
+
+    public static IPosBTEvent bt_proto2IPosRawdata(GenericSensor.IPosBTEvent iPosBTEvent_proto) {
+        IPosBTEvent iPosBTEvent_internal = devKitFactory.createIPosBTEvent();
+        iPosBTEvent_internal = ToozTrans.beacon_proto2IPosRawdata(iPosBTEvent_internal, iPosBTEvent_proto.getAgentId(), iPosBTEvent_proto.getSensorId(), iPosBTEvent_proto.getAgentType(), iPosBTEvent_proto.getSensorType(), iPosBTEvent_proto.getTimeStamp(), iPosBTEvent_proto.getDistancesMap());
+        iPosBTEvent_internal.setRss(Map_String2Double(iPosBTEvent_proto.getRssMap()));
+        return iPosBTEvent_internal;
+    }
+
+    private static <T extends IPosBeaconEvent> T beacon_proto2IPosRawdata(T iPosBeaconEvent_internal, String agentId, String sensorId, String agentType, String sensorType, String timeStamp, java.util.Map<String, String> distancesMap) {
+        iPosBeaconEvent_internal.setAgentId(agentId);
+        iPosBeaconEvent_internal.setSensorId(sensorId);
+        iPosBeaconEvent_internal.setAgentType(agentType);
+        iPosBeaconEvent_internal.setSensorType(sensorType);
+        iPosBeaconEvent_internal.setTimeStamp(timeStamp);
+        iPosBeaconEvent_internal.setDistances(Map_String2Double(distancesMap));
+        return iPosBeaconEvent_internal;
+    }
+
+    private static Map<String, Double> Map_String2Double(Map<String, String> distances) {
+        HashMap<String, Double> distancesDouble = new HashMap<>();
+        for (Map.Entry<String, String> distanceEntry : distances.entrySet()){
+            distancesDouble.put(distanceEntry.getKey(), Double.valueOf(distanceEntry.getValue()));
+        }
+        return distancesDouble;
+    }
+
+    public static MonitoringTarget monTarget_proto2internal(Tooz.MonitoringTarget monitoringTarget_proto) {
+        MonitoringTarget monitoringTarget_internal = toozFactory.createMonitoringTarget();
+        monitoringTarget_internal.setTargetSensorId(monitoringTarget_proto.getTargetSensorId());
+        return monitoringTarget_internal;
+    }
+
+    public static Tooz.DistantEntity distantEntity_internal2proto(DistantEntity distantEntity_internal) {
+        Tooz.DistantEntity.Builder distantEntity_proto = Tooz.DistantEntity.newBuilder();
+        distantEntity_proto.setLocalSensorId(distantEntity_internal.getLocalSensorId());
+        distantEntity_proto.setLocalAgentId(distantEntity_internal.getLocalAgentId());
+        distantEntity_proto.setDistantEntityId(distantEntity_internal.getDistantEntityId());
+        distantEntity_proto.setDistance(distantEntity_internal.getDistance());
+        distantEntity_proto.setProximityIndex(distantEntity_internal.getProximityIndex());
+        distantEntity_proto.putAllEntityData(distantEntity_internal.getEntityData());
+        return distantEntity_proto.build();
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/websocket/Message.java b/src/main/java/ipos/project/iposextension/tooz/websocket/Message.java
new file mode 100644
index 0000000000000000000000000000000000000000..fdb87ca23f5ac61afd1abbc12f5161f38808d23e
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/websocket/Message.java
@@ -0,0 +1,95 @@
+package ipos.project.iposextension.tooz.websocket;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Defined format for a message to send or receive with the {@link StompSessionClient}.
+ */
+public class Message {
+
+    /**
+     * Type of the message.
+     */
+    private MessageType messageType;
+
+    /**
+     * Message-content as a {@link List} of {@link String}.
+     * Every list-item represents a singe page to show on the glasses.
+     * If the message will be used as command, only one item needs to be in the {@link List}.
+     */
+    private List<String> content;
+
+    /**
+     * Defines a default-message.
+     * Use this constructor only for initialisation while a reflection-process.
+     * The default {@link MessageType} is {@link MessageType#UNDEFINED}.
+     */
+    private Message() {
+        this(MessageType.UNDEFINED);
+    }
+
+    /**
+     * Creates an empty message with a {@link MessageType}.
+     *
+     * @param messageType type for the message
+     */
+    public Message(final @NotNull MessageType messageType) {
+        setMessageType(messageType);
+        setContent(new ArrayList<>());
+    }
+
+    /**
+     * Creates a message.
+     * @param messageType type for the message.
+     * @param message a message as an item in the message-content
+     */
+    public Message(final @NotNull MessageType messageType, final @NotNull String message) {
+        this(messageType);
+        addInformationToContent(message);
+    }
+
+    /**
+     * Sets the {@link MessageType}.
+     *
+     * @param messageType new type for the message.
+     */
+    private void setMessageType(final @NotNull MessageType messageType) {
+        this.messageType = messageType;
+    }
+
+    /**
+     * Gives the {@link MessageType} of the message.
+     *
+     * @return the {@link MessageType} of the message.
+     */
+    public MessageType getMessageType() {
+        return messageType;
+    }
+
+    /**
+     * Adds a new item to the message-content.
+     * @param information content for the new item in the message-content.
+     */
+    public void addInformationToContent(final @NotNull String information) {
+        content.add(information);
+    }
+
+    /**
+     * Sets a {@link List} with {@link String}s as new content for the message.
+     * @param content a {@link List} of {@link String} as new content for the message.
+     */
+    private void setContent(final @NotNull List<String> content) {
+        this.content = content;
+    }
+
+    /**
+     * Gives the complete content of the message as {@link List} of {@link String}.
+     * @return the complete content of the message.
+     */
+    public List<String> getContent() {
+        return content;
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/websocket/MessageType.java b/src/main/java/ipos/project/iposextension/tooz/websocket/MessageType.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef7c13e5cfc46fb52c9dc44882625d052867d091
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/websocket/MessageType.java
@@ -0,0 +1,54 @@
+package ipos.project.iposextension.tooz.websocket;
+
+/**
+ * Types of message they can be send to the medical-ar-service.
+ */
+public enum MessageType {
+
+    /**
+     * Defines a message with a patient-id in the message-content.
+     */
+    PATIENT_ID,
+
+    /**
+     * Defines a emergency-message.
+     */
+    EMERGENCY,
+
+    /**
+     * Defines a broadcast-message. Broadcasts are send to all clients.
+     */
+    BROADCAST,
+
+    /**
+     * Defines a message with beacon-information.
+     */
+    BEACON,
+
+    /**
+     * Defines a button-pressed event-message.
+     */
+    BUTTON_PRESSED,
+
+
+    /**
+     * Defines a massage with content to display in the toozer-apps head.
+     */
+    DISPLAY_HEAD,
+
+    /**
+     * Defines a message with content to display in the toozer-apps text-container.
+     */
+    DISPLAY_TEXT,
+
+
+    /**
+     * Defines a test-message.
+     */
+    TEST,
+
+    /**
+     * Defines a undefined message. These messages should not be processed.
+     */
+    UNDEFINED
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/websocket/StompSessionClient.java b/src/main/java/ipos/project/iposextension/tooz/websocket/StompSessionClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..95a54e709d75c7413c75278f885d9f76ae66ad02
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/websocket/StompSessionClient.java
@@ -0,0 +1,311 @@
+package ipos.project.iposextension.tooz.websocket;
+
+import org.apache.logging.log4j.LogManager;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.messaging.converter.MappingJackson2MessageConverter;
+import org.springframework.messaging.simp.stomp.StompSession;
+import org.springframework.messaging.simp.stomp.StompSessionHandlerAdapter;
+import org.springframework.web.client.ResourceAccessException;
+import org.springframework.web.socket.client.standard.StandardWebSocketClient;
+import org.springframework.web.socket.messaging.WebSocketStompClient;
+import org.springframework.web.socket.sockjs.client.SockJsClient;
+import org.springframework.web.socket.sockjs.client.Transport;
+import org.springframework.web.socket.sockjs.client.WebSocketTransport;
+
+import java.util.*;
+import java.util.concurrent.Semaphore;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * <p>
+ * A client to connect with a web-socket to the medical-ar-service.
+ * This client creates a stomp-session within the web-socket to handle all messages and events.
+ * </p>
+ * <p>
+ * Currently there is no authentication supported.
+ * </p>
+ */
+public class StompSessionClient {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+    // Atomic structures and semaphores to handling internal threading.
+    private final AtomicBoolean disconnect = new AtomicBoolean(true);
+    private final Semaphore connectionMutex = new Semaphore(1);
+
+    /**
+     * Map with stomp-subscriptions.
+     */
+    private final Map<String, StompSession.Subscription> subscriptions = new HashMap<>();
+
+    /**
+     * The web-socket to connect to the medical-ar-service.
+     */
+    private volatile StompSession webSocketSession;
+
+    /**
+     * The stomp-session.
+     */
+    private final StompSessionHandlerAdapter sessionHandler;
+
+    /**
+     * Creates a client to connect with a web-socket to a service.
+     *
+     * @param sessionHandler handler to manage stomp-messages as events.
+     */
+    StompSessionClient(final @NotNull StompSessionHandlerAdapter sessionHandler) {
+        this.sessionHandler = sessionHandler;
+    }
+
+    /**
+     * Connects to a given destination with a given timeout.
+     *
+     * @param uri        the destination to connect with.
+     * @param waitMillis the timeout to wait for a response.
+     */
+    private void connect(final @NotNull String uri, final long waitMillis) {
+        new Thread(new ConnectWebSocket(uri, createWebSocketStompClient(), waitMillis)).start();
+    }
+
+    /**
+     * Disconnects the client from the destination.
+     */
+    void disconnect() {
+        new Thread(new DisconnectWebSocket()).start();
+    }
+
+    /**
+     * Disconnects the client first from the current destination
+     * and try to reconnect to the given destination with a timeout.
+     *
+     * @param uri        the destination to reconnect with.
+     * @param waitMillis the timeout to wait for a response.
+     */
+    void reconnect(final @NotNull String uri, final long waitMillis) {
+        disconnect();
+        connect(uri, waitMillis);
+    }
+
+    /**
+     * Gives the connection-state of the client.
+     *
+     * @return {@code true}, if the client is currently connected to a destination.
+     */
+    boolean isConnected() {
+        return webSocketSession.isConnected();
+    }
+
+    /**
+     * Subscribe to a new destination, if the client is connected. It's a threaded function and
+     * blocks the semaphore while working.
+     *
+     * @param destination the new destination to subscribe.
+     */
+    void subscribe(final @NotNull String destination) {
+        new Thread(() -> {
+            try {
+                connectionMutex.acquire();
+
+                if (webSocketSession != null && webSocketSession.isConnected() && !subscriptions.containsKey(destination)) {
+                    LOG.info("subscribe to: %s", destination);
+                    subscriptions.put(destination, webSocketSession.subscribe(destination, sessionHandler));
+                }
+            } catch (InterruptedException e) {
+                LOG.info(e);
+            } catch (Exception e) {
+                LOG.info(e);
+            } finally {
+                connectionMutex.release();
+            }
+        }).start();
+    }
+
+    /**
+     * Unsubscribe from a subscribed stomp-destination. It's a threaded function and
+     * blocks the semaphore while working.
+     *
+     * @param destination the destination to unsubscribe.
+     */
+    void unsubscribe(final @NotNull String destination) {
+        new Thread(() -> {
+            try {
+                connectionMutex.acquire();
+
+                if (webSocketSession != null && webSocketSession.isConnected() && subscriptions.containsKey(destination)) {
+                    LOG.info("unsubscribe to: %s", destination);
+                    Objects.requireNonNull(subscriptions.remove(destination)).unsubscribe();
+                }
+            } catch (InterruptedException e) {
+                LOG.info(e);
+            } catch (Exception e) {
+                LOG.info(e);
+            } finally {
+                connectionMutex.release();
+            }
+        }).start();
+    }
+
+    /**
+     * Subscription-state for a given stomp-destination.
+     *
+     * @param destination the destination to check its subscription-state.
+     * @return {@code true}, if the destination has been subscribed.
+     */
+    boolean hasSubscribedToDestination(final String destination) {
+        return subscriptions.containsKey(destination);
+    }
+
+    /**
+     * Sends a message to a given stomp-destination.
+     * The destination should be supported by the service connected with.
+     * It's a threaded function and blocks the semaphore while working.
+     *
+     * @param destination the destination to send a message.
+     * @param message the message to send.
+     *                The concrete class of the message-object should be supported by the service connected with.
+     */
+    void sendMessage(final @NotNull String destination, final @NotNull Object message) {
+        new Thread(() -> {
+            try {
+                connectionMutex.acquire();
+
+                if (webSocketSession != null && webSocketSession.isConnected()) {
+                    webSocketSession.send(destination, message);
+                    LOG.info("send message '%s' to '%s'", message.toString(), destination);
+                }
+            } catch (InterruptedException e) {
+                LOG.info(e);
+            } catch (Exception e) {
+                LOG.info(e);
+            } finally {
+                connectionMutex.release();
+            }
+        }).start();
+    }
+
+    /**
+     * Helper-function to create a web-socket client with an underlying stomp-session.
+     * @return a web-socket-client wit underlying stomp-session.
+     */
+    private WebSocketStompClient createWebSocketStompClient() {
+        final StandardWebSocketClient client = new StandardWebSocketClient();
+
+        final List<Transport> transports = new ArrayList<>(1);
+        transports.add(new WebSocketTransport(client));
+
+        final SockJsClient sockJsClient = new SockJsClient(transports);
+
+        final WebSocketStompClient webSocketStompClient = new WebSocketStompClient(sockJsClient);
+        webSocketStompClient.setMessageConverter(new MappingJackson2MessageConverter());
+
+        return webSocketStompClient;
+    }
+
+    /**
+     * Inner class to create a web-socket-connection to handle stomp-messages.
+     */
+    private class ConnectWebSocket implements Runnable {
+
+        /**
+         * The destination to connect with.
+         */
+        final private String uri;
+
+        /**
+         * The web-socket-client to connect wit a service.
+         */
+        final private WebSocketStompClient webSocketStompClient;
+
+        /**
+         * Timeout for the connection-response.
+         */
+        final private long waitMillis;
+
+        /**
+         * Creates a web-socket with a given stomp-client.
+         * @param uri the destination to connect with.
+         * @param webSocketStompClient the stomp-client to handle stomp-messages.
+         * @param waitMillis the timeout for the connection-response.
+         */
+        ConnectWebSocket(final String uri, final WebSocketStompClient webSocketStompClient,
+                         final long waitMillis) {
+            this.uri = uri;
+            this.webSocketStompClient = webSocketStompClient;
+            this.waitMillis = waitMillis;
+        }
+
+        /**
+         * Start the connection with the destination and listen for stomp-messages to handle them.
+         * This function should be run in a thread and blocks the semaphore while the connection-process.
+         * The connection-process restarts every time a timeout exists.
+         */
+        public void run() {
+            try {
+                connectionMutex.acquire();
+                disconnect.set(false);
+
+                final AtomicBoolean isNotConnected = new AtomicBoolean(true);
+
+                do {
+                    if (disconnect.get()) {
+                        LOG.info("disconnect occurred -> stop self");
+                        break;
+                    }
+
+                    try {
+                        webSocketSession = webSocketStompClient.connect(uri, sessionHandler).get();
+                    } catch (ResourceAccessException e) {
+                        LOG.info("can not connect to: %s", uri);
+                    } catch (Exception e) {
+                        LOG.info(e);
+                    }
+
+                    if (webSocketSession == null || !webSocketSession.isConnected()) {
+                        LOG.info("not connected -> retry connect in %s seconds", 0.001f * waitMillis);
+
+                        try {
+                            Thread.sleep(waitMillis);
+                        } catch (InterruptedException e) {
+                            LOG.info("thread has been interrupted -> stop self");
+                            break;
+                        }
+                    } else {
+                        isNotConnected.set(false);
+                    }
+                } while (isNotConnected.get());
+            } catch (InterruptedException e) {
+                LOG.info(e);
+            } finally {
+                connectionMutex.release();
+            }
+        }
+    }
+
+    /**
+     * Disconnects the client from the destination.
+     * This function should be run in a thread and blocks the semaphore while the disconnection-process.
+     */
+    private class DisconnectWebSocket implements Runnable {
+
+        public void run() {
+            try {
+                disconnect.set(true);
+                connectionMutex.acquire();
+
+                if (webSocketSession != null) {
+                    if (webSocketSession.isConnected()) {
+                        subscriptions.forEach((k, v) -> v.unsubscribe());
+                        webSocketSession.disconnect();
+                    }
+
+                    subscriptions.clear();
+                    webSocketSession = null;
+                }
+            } catch (InterruptedException e) {
+                LOG.info(e);
+            } catch (Exception e) {
+                LOG.info(e);
+            } finally {
+                connectionMutex.release();
+            }
+        }
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/websocket/ToozController.java b/src/main/java/ipos/project/iposextension/tooz/websocket/ToozController.java
new file mode 100644
index 0000000000000000000000000000000000000000..d8d45002b2833a77d82bdc301325278483b25e4a
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/websocket/ToozController.java
@@ -0,0 +1,22 @@
+package ipos.project.iposextension.tooz.websocket;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.messaging.simp.SimpMessagingTemplate;
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class ToozController {
+
+    @Autowired
+    private static SimpMessagingTemplate template;
+
+    //@Autowired
+    //public ToozController(SimpMessagingTemplate template){
+        //this.template = template;
+    //}
+
+    public static void sendMessageToService(String destination, Message message){
+        template.convertAndSend(destination, message);
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/websocket/WebSocketConfiguration.java b/src/main/java/ipos/project/iposextension/tooz/websocket/WebSocketConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..4ce95392b2a443ae2f20918b04bcf7975a18c98f
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/websocket/WebSocketConfiguration.java
@@ -0,0 +1,48 @@
+package ipos.project.iposextension.tooz.websocket;
+
+import org.apache.logging.log4j.LogManager;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.messaging.simp.config.MessageBrokerRegistry;
+import org.springframework.scheduling.concurrent.DefaultManagedTaskScheduler;
+import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
+import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
+import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
+
+/**
+ * Simple configuration to use WebSockets as server/de.tu.dresden.swt.medical.ar.service.
+ */
+@Configuration
+@EnableWebSocketMessageBroker
+public class WebSocketConfiguration implements WebSocketMessageBrokerConfigurer {
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    /**
+     * Configures the MessageBroker-registry.
+     *
+     * @param config {@link MessageBrokerRegistry} to become configured
+     */
+    @Override
+    public void configureMessageBroker(final MessageBrokerRegistry config) {
+        // their service receives messages
+        //config.enableSimpleBroker("/medical_ar_app")
+          //  .setTaskScheduler(new DefaultManagedTaskScheduler())
+          //  .setHeartbeatValue(new long[]{0, 0});
+        //config.enableStompBrokerRelay("destprefixes");
+        // ipos-fw receives nothing...
+        // config.setApplicationDestinationPrefixes("/medical_ar_app");
+
+       // LOG.debug("Simple STOMP-broker enabled.");
+    }
+
+    /**
+     * Configures the STOMP-endpoint.
+     *
+     * @param registry {@link StompEndpointRegistry} to create endpoint for STOMP-messages
+     */
+    @Override
+    public void registerStompEndpoints(final StompEndpointRegistry registry) {
+        registry.addEndpoint("/iposfw_stomp_endpoint").setAllowedOrigins("*").withSockJS();
+
+        LOG.debug("Endpoints registered.");
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/tooz/websocket/WebSocketService.java b/src/main/java/ipos/project/iposextension/tooz/websocket/WebSocketService.java
new file mode 100644
index 0000000000000000000000000000000000000000..60b89388ebf16e76df7f2411e437d63cd9a2e85a
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/tooz/websocket/WebSocketService.java
@@ -0,0 +1,245 @@
+package ipos.project.iposextension.tooz.websocket;
+
+import ipos.project.iposextension.tooz.Tooz;
+import org.apache.logging.log4j.LogManager;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.messaging.simp.stomp.*;
+
+import java.lang.reflect.Type;
+
+
+
+/**
+ * A background-android-service to handle the web-socket-connection with an underlying stomp-connection.
+ */
+public class WebSocketService {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    /**
+     * The web-socket-client to handle stomp-messages.
+     */
+    private final StompSessionClient stompSessionClient = new StompSessionClient(new StompSessionHandler());
+
+
+    /**
+     * Name of the bluetooth-device.
+     */
+    private String bluetoothName = "glass_default";
+
+    /**
+     * The destination for the service to connect with.
+     */
+    private String ownDestination = null;
+
+    /**
+     * Sets the bluetooth-device-name to the background-service
+     * It is used to identify the android-device at the medical-ar-service.
+     *
+     * @param bluetoothName
+     */
+    public void setBluetoothName(final @NotNull String bluetoothName) {
+        if (ownDestination != null)
+            return;
+
+        this.bluetoothName = bluetoothName;
+        ownDestination = "/medical_ar_app/" + bluetoothName;
+    }
+
+    /**
+     * Gives the connection-state of the internal web-socket-connection.
+     *
+     * @return {@code true}, if a connection is established.
+     */
+    public boolean isConnected() {
+        return stompSessionClient.isConnected();
+    }
+
+    /**
+     * Reconnects the internal web-socket-client wit a given destination and timeout.
+     * Before the new connection will be created, the current connection will be destroyed.
+     *
+     * @param uri        the new destination to connect with.
+     * @param waitMillis timeout for the connection-response.
+     */
+    public void reconnectWebSocket(final @NotNull String uri, final long waitMillis) {
+        stompSessionClient.reconnect(uri, waitMillis);
+    }
+
+    public void requestPatientInfoFromServiceForGlasses(String destination, String patientId){
+        final Message message = new Message(MessageType.PATIENT_ID, patientId);
+
+        stompSessionClient.sendMessage(destination,
+                message);
+    }
+
+    /**
+     * Sends a message to the service to get patient-information.
+     *
+     * @param patientId the patient-id of the patient to get the information about.
+     */
+    public void getPatient(final @NotNull String patientId) {
+        final Message message = new Message(MessageType.PATIENT_ID, patientId);
+
+        stompSessionClient.sendMessage(ownDestination,
+                message);
+    }
+
+    /**
+     * Sends a message to the service to get patient-information with a beacon-id.
+     *
+     * @param beackonId the beacon-id of the patient to get the information about.
+     */
+    public void getPatientWithBeaconId(final @NotNull String beackonId) {
+        final Message message = new Message(MessageType.BEACON, beackonId);
+
+        stompSessionClient.sendMessage(ownDestination,
+                message);
+    }
+
+    /**
+     * Sends a message to the service wit a button-pressed-event.
+     */
+    public void buttonPressed() {
+        stompSessionClient.sendMessage(ownDestination,
+                new Message(MessageType.BUTTON_PRESSED));
+    }
+
+    /**
+     * Subscribes to a given stomp-destination.
+     *
+     * @param channelName the name of the stomp-destination to connect with.
+     */
+    public void subscribeToChannel(final @NotNull String channelName) {
+        stompSessionClient.subscribe(channelName);
+    }
+
+    /**
+     * Unsubscribe from a given stomp-destination.
+     *
+     * @param channelName the name of the stomp-destination to disconnect from.
+     */
+    public void unsubscribeToChannel(final @NotNull String channelName) {
+        stompSessionClient.unsubscribe(channelName);
+    }
+
+    /**
+     * An internal event-handling-class to handle events from a stomp-connection.
+     */
+    private class StompSessionHandler extends StompSessionHandlerAdapter {
+
+        // Mutex for thread-handling.
+        private final Object mutex = new Object();
+
+        /**
+         * OnAfterConnected-event-handle. Gets called after a stomp-connection has been established.
+         * Subscribes to the broadcast-destination and an id-destination to get only messages for a single android-device.
+         * Forwards the exception to all connected {@linkk WebSocketEventListener} as an OnConnectionEvent.
+         *
+         * @param session          the session that has been created.
+         * @param connectedHeaders the connection-header send from the connected service.
+         */
+        @Override
+        public void afterConnected(final StompSession session, final StompHeaders connectedHeaders) {
+            synchronized (mutex) {
+                LOG.info("session started: ID -> %s ", session.getSessionId());
+
+                stompSessionClient.subscribe("/broadcast");
+                stompSessionClient.subscribe(String.format("/glass/%s", bluetoothName));
+
+                // webSocketEventListeners.forEach(listener -> listener.onConnectionEvent(true));
+            }
+        }
+
+        /**
+         * OnException-event-handle. Gets called if an exception has been thrown.
+         * Forwards the exception to all connected {@linkk WebSocketEventListener} as an OnErrorEvent.
+         *
+         * @param session   the session where the exception has been thrown.
+         * @param command   the stomp-command where the exception has been thrown.
+         * @param headers   the stomp-header where the exception has been thrown.
+         * @param payload   the stomp-message-content where the exception has been thrown.
+         * @param exception the exception that has been thrown.
+         */
+        @Override
+        public void handleException(final StompSession session, final StompCommand command,
+                                    final StompHeaders headers, final byte[] payload,
+                                    final Throwable exception) {
+            //webSocketEventListeners.forEach(listener -> listener.onErrorEvent(exception));
+        }
+
+        /**
+         * Sets the {@link Type} of the messages that should be handled by the stomp-client.
+         * Currently the {@link Type} is {@link Message}.
+         * The {@link StompHeaders} can be used to differentiate between types of messages in the future.
+         *
+         * @param headers the stomp-header to differentiate between types of messages.
+         * @return the {@link Type} of the message to reflect.
+         */
+        @Override
+        @NotNull
+        public Type getPayloadType(final StompHeaders headers) {
+            return Message.class;
+        }
+
+        /**
+         * <p>
+         * OnHandleMessage-event-handle. Gets called after a message has been received.
+         * Only messages to a subscribed stomp-destination will be processed.
+         * Forwards the {@link Message} to all connected {@linkk WebSocketEventListener} as an OnMessageReceivedEvent.
+         * </p>
+         *
+         * <p>
+         * Creates the payload with reflection based on the result of the {@link StompSessionHandler#getPayloadType} function.
+         * If you're change this function, you need to include these changes here.
+         * </p>
+         *
+         * @param headers the stomp-header to differentiate between types of messages.
+         * @param payload the reflected message-content from the received frame.
+         */
+        @Override
+        public void handleFrame(final StompHeaders headers, final Object payload) {
+            synchronized (mutex) {
+                final Message message = (Message) payload;
+                final String destination = headers.getDestination();
+
+                if (destination != null && stompSessionClient.hasSubscribedToDestination(destination)) {
+                    // webSocketEventListeners.forEach(
+                    //        listener -> listener.onMessageReceivedEvent(message));
+                }
+            }
+        }
+
+        /**
+         * <p>
+         * OnHandleSendError-event-handler. Gets called every time an exception while sending a message has been thrown.
+         * </p>
+         *
+         * <P>
+         * If a connection has been lost this function forwards the {@link Exception} to all connected
+         * {@linkk WebSocketEventListener} as an OnConnectionEvent and OnDisconnectOccurredEvent.
+         * </P>
+         *
+         * <p>
+         * In any other cases this function forwards the {@link Exception} to all connected
+         * {@linkk WebSocketEventListener} as an OnErrorEvent.
+         * </p>
+         *
+         * @param session   the session where the exception has been thrown.
+         * @param exception the exception that has been thrown.
+         */
+        @Override
+        public void handleTransportError(final StompSession session, final Throwable exception) {
+            if (exception instanceof ConnectionLostException) {
+                LOG.info("connection lost -> create a new one");
+
+                // webSocketEventListeners.forEach(listener -> listener.onConnectionEvent(false));
+                // webSocketEventListeners.forEach(WebSocketEventListener::onDisconnectOccurredEvent);
+
+                return;
+            }
+
+            //webSocketEventListeners.forEach(listener -> listener.onErrorEvent(exception));
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/main/resources/GenericSensor.proto b/src/main/resources/GenericSensor.proto
new file mode 100644
index 0000000000000000000000000000000000000000..bff038ddbc540d50f8b0ba0ec9aaf5c1c9dd1f71
--- /dev/null
+++ b/src/main/resources/GenericSensor.proto
@@ -0,0 +1,91 @@
+syntax = "proto3";
+
+package ipos.models;
+
+import "SimpleScene.proto";
+
+message SensorEventWrapper{ // mqtt-like protocols: just une kind of protobuf-message shall be sent over a topic, therefore wrapper-messages are used to encapsulate different kinds of protobuf-messages
+	repeated RFIDRawDataEvent rfidRawDataEvent = 1;
+	repeated NFCRawDataEvent nfcRawDataEvent = 2;
+	repeated BarcodeRawDataEvent barcodeRawDataEvent = 3;
+	repeated OtherProxRawDataEvent otherProxRawDataEvent = 4;
+	repeated BluetoothRawDataEvent bluetoothRawDataEvent = 5;
+	repeated UWBRawDataEvent uwbRawDataEvent = 6;
+	repeated OtherBeaconRawDataEvent otherBeaconRawDataEvent  =  7;
+	repeated IMURawDataEvent imuRawDataEvent =  8;
+	repeated SensorPositionEvent sensorPositionEvent = 9;
+}
+
+message RFIDRawDataEvent {
+	string timestamp = 1; // https://en.wikipedia.org/wiki/ISO_8601
+	string tagId = 2;
+	string type = 3;
+	string scannerId = 4;
+	string location = 5;
+}
+
+message NFCRawDataEvent {
+	string timestamp = 1;
+	string tagId = 2;
+	string type = 3;
+	string scannerId = 4;
+	map<string, string> tagData = 5;
+}
+
+message BarcodeRawDataEvent {
+	string timestamp = 1;
+	string tagId = 2;
+	string type = 3;
+	string scannerId = 4;
+}
+
+message OtherProxRawDataEvent {
+	string timestamp = 1;
+	string tagId = 2;
+	string type = 3;
+	string scannerId = 4;
+	map<string, string> data = 5;
+}
+
+message BluetoothRawDataEvent {
+	string timestamp = 1;
+	string sensorId = 2;
+	map<string, string> distances = 3; // beacon-id -> distance
+	string type = 4;
+	map<string, string> rss = 5; // beacon-id -> rss
+	
+}
+
+message UWBRawDataEvent {
+	string timestamp = 1;
+	string sensorId = 2;
+	map<string, string> distances = 3; // beacon-id -> distance
+	string type = 4;
+}
+
+message OtherBeaconRawDataEvent {
+	string timestamp = 1;
+	string sensorId = 2;
+	map<string, string> distances = 3; // beacon-id -> distance
+	string type = 4;
+	map<string, string> data = 5;
+}
+
+message IMURawDataEvent {
+	string timestamp = 1;
+	string sensorId = 2;
+	float yaw = 3; // angular rate (rad/s), https://en.wikipedia.org/wiki/Aircraft_principal_axes#Transverse_axis_(pitch)
+	float pitch = 4;
+	float roll = 5;
+	float x = 6; // linear acceleration, m/(s^2)
+	float y = 7;
+	float z = 8;
+}
+
+message SensorPositionEvent {
+  string sensorId = 1; //unique
+  IposPosition position = 2;
+  IposSimpleOrientation orientation = 3;
+  string lastPosUpdate = 4; // https://en.wikipedia.org/wiki/ISO_8601
+}
+
diff --git a/src/main/resources/SimpleScene.proto b/src/main/resources/SimpleScene.proto
index e343c6c5db7cb6a990261cea7622d8f1269449b9..79aa262ba9416e19aec32aa3f097b9e0a15e98d5 100644
--- a/src/main/resources/SimpleScene.proto
+++ b/src/main/resources/SimpleScene.proto
@@ -2,52 +2,83 @@ syntax = "proto3";
 
 package ipos.models;
 
-//option java_multiple_files = true;
-//option java_package = "ipos.project.models";
+message IposConfigWrapper { // wrapper-message for configuration-topic
+  repeated IposFrameConfig frames = 1;
+  repeated IposObject objects = 2; // an object must be either in this list
+  repeated IposObjectConfig objectConfigs = 3; // or in this list, not in both
+  repeated POI pois = 4;
+  repeated RefSystem refsystems = 5;
+  repeated IposMonitoringRequest monitoringRequests = 6;
+}
 
-message IposConfig {
-  repeated IposFrame frames = 1;
-  repeated IposObject objects = 2;
+message IposObjectConfig {
+  string id = 1; // unique for each object, but there may be multiple positioning sensors for that object
+  string sensorId = 2; // unique (each sensor localizes a single object)
+  string agentType = 3; // CeTI will send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER
+  string sensorType = 4; // BLUETOOTH, UWB, NFC, RFID, IMU...
 }
+// note: IposObjectConfigs are used to register sensors. Beacon-positions are POIs and should be sent to sensor after registration. Bluetooth/UWB sensor need to know a reference system id. All Beacon-position sent to the Bluetooth/UWB sensor should have the same reference system id
 
-message IposPositionUpdate {
-  repeated IposObject objects = 1;
+message IposPositionEvent {
+  repeated IposObject object = 1;
+  string type = 2; // may be ExitNotification or EntryNotification
 }
 
 message IposObject {
-
-  // required:
   string id = 1; // unique for each object, but there may be multiple sensors
-  string sensor_id = 2; // unique
+  string sensorId = 2; //unique
   string type = 3; // Applications may send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER
-
-  // optional:
-  IposRelativePosition position = 4;
-  IposSimpleOrientation orientation = 5;
-  string last_pos_update = 6; // https://en.wikipedia.org/wiki/ISO_8601
-
+  string sensorType = 4; // BLUETOOTH, UWB, NFC, RFID, IMU
+  IposPosition position = 5;
+  IposSimpleOrientation orientation = 6;
+  string lastPosUpdate = 7; // https://en.wikipedia.org/wiki/ISO_8601
 }
 
-message IposFrame {
+message IposFrameConfig {
   string id = 1; // unique for every frame, used for relative coordinates
   IposSpace space = 2; // cube defining the extension, might be (0,0,0)
-  IposPosition position = 3; // centre of the "frame" cube, absolute
-  IposSimpleOrientation orientation = 4; // orientation of the frame
-  float delta = 5; // min. Position to trigger a position update
+  IposPosition position = 3; // centre of the "frame" cube
+}
+
+message RefSystem {
+  string id = 1;
+  IposPosition position = 2; // position of origin of RefSystem. May be relative or absolute
 }
 
-// relative coordinates
-message IposRelativePosition {
-  string frame_id = 1;
-  IposPosition pos = 2;
+message IposMonitoringRequest {
+  string frameId = 1;
+  float delta = 2; // min. change in position to trigger a position update, setting delta and updateFrequency to -1 cancels the (existing) monitoring task
+  float updateFrequency = 3; // defines how many times per second a PositionUpdateEvent is sent
+  repeated string type = 4; // object-types to be observed; CeTI will send BOX,BIN,ZONE,ROBOT,HUMAN,OTHER
+  repeated string id = 5; // object-ids to be observed
+  string fusionStrategy = 6; // e.g., "accuracy" for accuracy-optimized monitoring if multiple positions sensors per agent
+  bool exit_notification = 7; // IPos will notify receiver when object has left the frame
+  repeated string properties = 8; // properties that shall be monitored: position or id or type
+  string monitoringTaskId = 9; // unique for each monitoringRequest. IPosFW uses this info for configuring the communication protocol, e.g., for selecting a specific topic for MQTT-communication; a monitoringRequest with the same monitoringTaskId like a previous request updates this request
+  string requestorProtocol = 10; // communication protocol, e.g., "mqtt"; Assumption: requestor = receiver
+}
+
+message IposMonitoringResponse {
+  string monitoringTaskId = 1;
+  string status = 2; // success- or error-Message
 }
 
-// relative coordinates
 message IposPosition {
+  string refSystemId = 1; // e.g., "WGS84" if absolute position, "ROOT" for testcases or if specific absolute position is actually irrelevant
+  IposPoint3D point = 2;
+  float accuracy = 3; // object is with 95% probability within x metres of this point (gaussian distribution)
+}
+
+message IposPoint3D {
   float x = 1; // pos in x direction in m
   float y = 2; // pos in y direction in m
   float z = 3; // pos in z direction in m (up)
-  float accuracy = 4; // object is with 95% probability within x metres of this point (gaussian distribution)
+}
+
+message POI { // point-of-interest
+  string description = 1; // e.g., "tag"
+  map<string, string> data = 2; // e.g., "id" -> tag-id; "type" -> "nfc"
+  IposPosition position = 3;
 }
 
 message IposSpace {
@@ -62,29 +93,3 @@ message IposSimpleOrientation {
   float z = 3; // there is no orientation
   float w = 4; // available
 }
-
-message IposSubscriptionRequest {
-
-  string subscription_id = 1;
-
-  Selection type_selection = 2;
-  repeated string types = 3;
-
-  Selection object_selection = 4;
-  repeated string objects = 5;
-
-  Selection zone_selection = 6;
-  repeated string zones = 7;
-
-  double minimum_position_delta = 8;
-  double max_update_frequency = 9;
-
-}
-
-enum Selection {
-  SELECTION_UNSPECIFIED = 0;
-  SELECTION_ALL = 1;
-  SELECTION_NONE = 2;
-  SELECTION_ONLY_LIST = 3;
-  SELECTION_EXCEPT_LIST = 4;
-}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index c41bd9578be586635dc79a6fba72d436dda7d683..f14f376c92693b553d131934ae9fd06db0fc2fbb 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,6 +1,7 @@
 logging:
   level:
     ipos: DEBUG
+  config: logback-spring.xml
 server:
   port: 7071
 
@@ -10,11 +11,15 @@ mqtt:
   cleanSession: true
   setKeepAliveInterval: 10
   connectionTimeout: 20
-  clientId: ipos.project
-  hostname: broker.hivemq.com
+  clientId: ipos.project.fw
+  # hostname: 192.168.0.111 # ceti-laptop robolab
+  # hostname: broker.hivemq.com # online
+  # hostname: 192.168.0.143 # Frank-laptop robolab
+  # hostname: localhost # locally-running mosquitto
+  hostname: localhost
   port: 1883
 
 spring:
   activemq:
     packages:
-      trusted: ipos.models, com.google.protobuf
\ No newline at end of file
+      trusted: ipos.models, com.google.protobuf # JMS serializes just trusted classes
\ No newline at end of file
diff --git a/testdata_raw_empty.txt b/testdata_raw_empty.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/testdata_raw_indfro.txt b/testdata_raw_indfro.txt
new file mode 100644
index 0000000000000000000000000000000000000000..21e970201e6e02772da033b5758b2eb25eab28e6
--- /dev/null
+++ b/testdata_raw_indfro.txt
@@ -0,0 +1,2 @@
+{"sensorPositionEvent": [{"sensorId": "UWB_1", "position": {"refSystemId": "CETI_ROOT", "point": {"x": 1.0,"y": 1.0,"z": 1.0}, "accuracy": 10.0}, "orientation": {"x": 1.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate": "2021-10-14T19:32:20+00:00"}]}
+{"sensorPositionEvent": [{"sensorId": "UWB_1", "position": {"refSystemId": "CETI_ROBOTARM_CELL", "point": {"x": -0.07573951,"y": 0.47573978,"z": -1.5899485}, "accuracy": 10.0}, "orientation": {"x": 0.4323382,"y": 0.37717205,"z": -0.45804298, "w": -0.6789863}, "lastPosUpdate": "2021-10-14T19:32:20+00:00"}]}
\ No newline at end of file
diff --git a/testdata_raw_orderpicker.txt b/testdata_raw_orderpicker.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ed1e4b2d440ca276d32874b8a6225743527272a4
--- /dev/null
+++ b/testdata_raw_orderpicker.txt
@@ -0,0 +1 @@
+{"picklists" : [{  	"picklistId" : "picklist_1", 	"picklistRoles" : [ 		{ "picklistId" : "Picklist_1", 		  "partyId" : "Employee_1", 		  "roleTypeId" : "PICKER" 		 		} 	], 	"picklistBins" : [  		{ 			"picklistId" : "picklist_1", 			"binLocationNumber" : "shipmentBin_1",  			"picklistItems" : [ 				{ 					"inventoryItem" :  					{ 						"inventoryItemId" : "invit1", 						"containerId" : "box_1",  						"productId" : "blau" 					} 				} 			] 		}, 		{ 			"picklistId" : "picklist_1", 			"binLocationNumber" : "shipmentBin_2",  			"picklistItems" : [ 				{ 					"inventoryItem" :  					{ 						"inventoryItemId" : "invit3", 						"containerId" : "box_2",  						"productId" : "grün" 					} 				}, 				{ 					"inventoryItem" :  					{ 						"inventoryItemId" : "invit3", 						"containerId" : "box_3",  						"productId" : "rot" 					} 				} 			] 		 		}	 	] 	}]}
\ No newline at end of file
diff --git a/testdata_raw_orderpicker_posEvts.txt b/testdata_raw_orderpicker_posEvts.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4561fe339502428742c4efd27f13d9eee83fb478
--- /dev/null
+++ b/testdata_raw_orderpicker_posEvts.txt
@@ -0,0 +1,8 @@
+{"iposPositionEvents" : [ 	{"objects" : [ 		{ 			"id" : "Employee_1", 			"sensorId" : "UWB_1", 			"type" : "HUMAN", 			"sensorType" : "UWB", 			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, 			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, 			"lastPosUpdate" : "2021-10-14T19:32:20+00:00", 			"zoneDescriptors" : [{"zoneId" : "box_1", "notificationType" : "undefined"}] 		} 	]} ]}
+{"iposPositionEvents" : [ 	{"objects" : [ 		{ 			"id" : "Employee_1", 			"sensorId" : "UWB_1", 			"type" : "HUMAN", 			"sensorType" : "UWB", 			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, 			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, 			"lastPosUpdate" : "2021-10-14T19:32:20+00:00", 			"zoneDescriptors" : [{"zoneId" : "shipmentBin_5", "notificationType" : "undefined"}] 		} 	]} ]}
+{"iposPositionEvents" : [ 	{"objects" : [ 		{ 			"id" : "Employee_1", 			"sensorId" : "UWB_1", 			"type" : "HUMAN", 			"sensorType" : "UWB", 			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, 			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, 			"lastPosUpdate" : "2021-10-14T19:32:20+00:00", 			"zoneDescriptors" : [{"zoneId" : "box_4", "notificationType" : "undefined"}] 		} 	]} ]}
+{"iposPositionEvents" : [ 	{"objects" : [ 		{ 			"id" : "Employee_1", 			"sensorId" : "UWB_1", 			"type" : "HUMAN", 			"sensorType" : "UWB", 			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, 			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, 			"lastPosUpdate" : "2021-10-14T19:32:20+00:00", 			"zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}] 		} 	]} ]}
+{"iposPositionEvents" : [ 	{"objects" : [ 		{ 			"id" : "Employee_1", 			"sensorId" : "UWB_1", 			"type" : "HUMAN", 			"sensorType" : "UWB", 			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, 			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, 			"lastPosUpdate" : "2021-10-14T19:32:20+00:00", 			"zoneDescriptors" : [{"zoneId" : "box_5", "notificationType" : "undefined"}] 		} 	]} ]}
+{"iposPositionEvents" : [ 	{"objects" : [ 		{ 			"id" : "Employee_1", 			"sensorId" : "UWB_1", 			"type" : "HUMAN", 			"sensorType" : "UWB", 			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, 			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, 			"lastPosUpdate" : "2021-10-14T19:32:20+00:00", 			"zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}] 		} 	]} ]}
+{"iposPositionEvents" : [ 	{"objects" : [ 		{ 			"id" : "Employee_1", 			"sensorId" : "UWB_1", 			"type" : "HUMAN", 			"sensorType" : "UWB", 			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, 			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, 			"lastPosUpdate" : "2021-10-14T19:32:20+00:00", 			"zoneDescriptors" : [{"zoneId" : "box_2", "notificationType" : "undefined"}] 		} 	]} ]}
+{"iposPositionEvents" : [ 	{"objects" : [ 		{ 			"id" : "Employee_1", 			"sensorId" : "UWB_1", 			"type" : "HUMAN", 			"sensorType" : "UWB", 			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, 			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, 			"lastPosUpdate" : "2021-10-14T19:32:20+00:00", 			"zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] 		} 	]} ]}
\ No newline at end of file
diff --git a/testdata_raw_orderpicker_posEvts_readable.txt b/testdata_raw_orderpicker_posEvts_readable.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f6bc0a7ca025477de3d1bb8d899863f4c2bba5b3
--- /dev/null
+++ b/testdata_raw_orderpicker_posEvts_readable.txt
@@ -0,0 +1,112 @@
+{"iposPositionEvents" : [
+	{"objects" : [
+		{
+			"id" : "Employee_1",
+			"sensorId" : "UWB_1",
+			"type" : "HUMAN",
+			"sensorType" : "UWB",
+			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01},
+			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0},
+			"lastPosUpdate" : "2021-10-14T19:32:20+00:00",
+			"zoneDescriptors" : [{"zoneId" : "box_1", "notificationType" : "undefined"}]
+		}
+	]}
+]}
+{"iposPositionEvents" : [
+	{"objects" : [
+		{
+			"id" : "Employee_1",
+			"sensorId" : "UWB_1",
+			"type" : "HUMAN",
+			"sensorType" : "UWB",
+			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01},
+			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0},
+			"lastPosUpdate" : "2021-10-14T19:32:20+00:00",
+			"zoneDescriptors" : [{"zoneId" : "shipmentBin_5", "notificationType" : "undefined"}]
+		}
+	]}
+]}
+{"iposPositionEvents" : [
+	{"objects" : [
+		{
+			"id" : "Employee_1",
+			"sensorId" : "UWB_1",
+			"type" : "HUMAN",
+			"sensorType" : "UWB",
+			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01},
+			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0},
+			"lastPosUpdate" : "2021-10-14T19:32:20+00:00",
+			"zoneDescriptors" : [{"zoneId" : "box_4", "notificationType" : "undefined"}]
+		}
+	]}
+]}
+{"iposPositionEvents" : [
+	{"objects" : [
+		{
+			"id" : "Employee_1",
+			"sensorId" : "UWB_1",
+			"type" : "HUMAN",
+			"sensorType" : "UWB",
+			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01},
+			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0},
+			"lastPosUpdate" : "2021-10-14T19:32:20+00:00",
+			"zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}]
+		}
+	]}
+]}
+{"iposPositionEvents" : [
+	{"objects" : [
+		{
+			"id" : "Employee_1",
+			"sensorId" : "UWB_1",
+			"type" : "HUMAN",
+			"sensorType" : "UWB",
+			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01},
+			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0},
+			"lastPosUpdate" : "2021-10-14T19:32:20+00:00",
+			"zoneDescriptors" : [{"zoneId" : "box_5", "notificationType" : "undefined"}]
+		}
+	]}
+]}
+{"iposPositionEvents" : [
+	{"objects" : [
+		{
+			"id" : "Employee_1",
+			"sensorId" : "UWB_1",
+			"type" : "HUMAN",
+			"sensorType" : "UWB",
+			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01},
+			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0},
+			"lastPosUpdate" : "2021-10-14T19:32:20+00:00",
+			"zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}]
+		}
+	]}
+]}
+{"iposPositionEvents" : [
+	{"objects" : [
+		{
+			"id" : "Employee_1",
+			"sensorId" : "UWB_1",
+			"type" : "HUMAN",
+			"sensorType" : "UWB",
+			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01},
+			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0},
+			"lastPosUpdate" : "2021-10-14T19:32:20+00:00",
+			"zoneDescriptors" : [{"zoneId" : "box_2", "notificationType" : "undefined"}]
+		}
+	]}
+]}
+{"iposPositionEvents" : [
+	{"objects" : [
+		{
+			"id" : "Employee_1",
+			"sensorId" : "UWB_1",
+			"type" : "HUMAN",
+			"sensorType" : "UWB",
+			"position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01},
+			"orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0},
+			"lastPosUpdate" : "2021-10-14T19:32:20+00:00",
+			"zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}]
+		}
+	]}
+]}
\ No newline at end of file
diff --git a/testdata_raw_orderpicker_readable.txt b/testdata_raw_orderpicker_readable.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a1e14d7c81033012e411da5e6a013c546d3aa686
--- /dev/null
+++ b/testdata_raw_orderpicker_readable.txt
@@ -0,0 +1,49 @@
+{"picklists" : [{ 
+	"picklistId" : "picklist_1",
+	"picklistRoles" : [
+		{ "picklistId" : "Picklist_1",
+		  "partyId" : "Employee_1",
+		  "roleTypeId" : "PICKER"
+		
+		}
+	],
+	"picklistBins" : [ 
+		{
+			"picklistId" : "picklist_1",
+			"binLocationNumber" : "shipmentBin_1", 
+			"picklistItems" : [
+				{
+					"inventoryItem" : 
+					{
+						"inventoryItemId" : "invit1",
+						"containerId" : "box_1", 
+						"productId" : "blau"
+					}
+				}
+			]
+		},
+		{
+			"picklistId" : "picklist_1",
+			"binLocationNumber" : "shipmentBin_2", 
+			"picklistItems" : [
+				{
+					"inventoryItem" : 
+					{
+						"inventoryItemId" : "invit3",
+						"containerId" : "box_2", 
+						"productId" : "grün"
+					}
+				},
+				{
+					"inventoryItem" : 
+					{
+						"inventoryItemId" : "invit3",
+						"containerId" : "box_3", 
+						"productId" : "rot"
+					}
+				}
+			]
+		
+		}	
+	]
+	}]}
\ No newline at end of file
diff --git a/testdata_raw_osm_init.txt b/testdata_raw_osm_init.txt
new file mode 100644
index 0000000000000000000000000000000000000000..16ee7724d9b70d8e71dad466d2ad59774e55caae
--- /dev/null
+++ b/testdata_raw_osm_init.txt
@@ -0,0 +1 @@
+{"monitoringTargets" : [{"protocol" : "VDA5050"}]}
\ No newline at end of file
diff --git a/testdata_raw_query.txt b/testdata_raw_query.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bd86a5a94b1b1b1ff0d7bc5e00a371ecc380ade2
--- /dev/null
+++ b/testdata_raw_query.txt
@@ -0,0 +1 @@
+{"queryRequests":[{"trackingTaskId": "RobolabMonitoringCeti_tracking"}, {"trackingTaskId": "RobolabMonitoringFrontend_tracking"}]}
\ No newline at end of file
diff --git a/testdata_raw_sdf.txt b/testdata_raw_sdf.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2362c025eea8b4aa9b7687cb1502d7ec33d18a51
--- /dev/null
+++ b/testdata_raw_sdf.txt
@@ -0,0 +1,4 @@
+{"sensorPositionEvent": [{"sensorId": "UWB_1", "position": {"refSystemId": "ROOT", "point": {"x": 3.0,"y": 1.5,"z": 3.0}, "accuracy": 1.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "lastPosUpdate": "2021-10-14T19:32:20+00:00"}]}
+{"nfcRawDataEvent" : [ {"timestamp" : "2021-10-14T19:33:20+00:00", "tagId": "83221710", "type": "RFID", "scannerId": "98:CD:AC:26:2D:18"} ] }
+{"nfcRawDataEvent" : [ {"timestamp" : "2021-10-14T19:33:20+00:00", "tagId": "31762128", "type": "RFID", "scannerId": "98:CD:AC:26:2D:18"} ] }
+{"sensorPositionEvent": [{"sensorId": "UWB_1", "position": {"refSystemId": "ROOT", "point": {"x": 3.0,"y": 1.5,"z": 3.0}, "accuracy": 1.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "lastPosUpdate": "2021-10-14T19:34:20+00:00"}]}
\ No newline at end of file
diff --git a/testdata_raw_tooz.txt b/testdata_raw_tooz.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7a6e3f300912c27a24398b58a55da0ac6d71f2d1
--- /dev/null
+++ b/testdata_raw_tooz.txt
@@ -0,0 +1,8 @@
+{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_uwb", "type": "UWB"}]}
+{"bluetoothRawDataEvent" : [{"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_bt",   "type": "BT"}]}
+{"bluetoothRawDataEvent" : [{"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_bt",   "type": "BT", "rss": {"beacon_1" : "12.7", "beacon_2" : "15.3", "beacon_3" : "18.7"}}]}
+{"bluetoothRawDataEvent" : [{"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_bt",  "distances": {"beacon_1" : "2.5", "beacon_2" : "5.5", "beacon_3" : "8.5"}, "type": "BT", "rss": {"beacon_1" : "12.7", "beacon_2" : "15.3", "beacon_3" : "18.7"}}]}
+{"bluetoothRawDataEvent" : [{"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_bt",  "distances": {"beacon_1" : "2.5", "beacon_2" : "5.5", "beacon_3" : "8.5"}, "type": "BT"}]}
+{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_uwb",  "distances": {"beacon_1" : "2.5", "beacon_2" : "5.5", "beacon_3" : "8.5"}, "type": "UWB"}]}
+{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:04:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_1" : "15.0"}, "type": "UWB"}]}
+{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:05:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_5" : "1.8"}, "type": "UWB"}]}
\ No newline at end of file
diff --git a/testdata_raw_tooz_init.txt b/testdata_raw_tooz_init.txt
new file mode 100644
index 0000000000000000000000000000000000000000..48143b48f772541ac5626926f249db7e06626871
--- /dev/null
+++ b/testdata_raw_tooz_init.txt
@@ -0,0 +1,2 @@
+{"monitoringTargets" : [{"targetSensorId" : "tooz_employee_uwb" }]}
+{"monitoringTargets" : [{"targetSensorId" : "tooz_employee_bt" }]}
\ No newline at end of file
diff --git a/testdata_raw_vda5050.txt b/testdata_raw_vda5050.txt
new file mode 100644
index 0000000000000000000000000000000000000000..eff1fd29908c7433d0738efe842737dea4c6550d
--- /dev/null
+++ b/testdata_raw_vda5050.txt
@@ -0,0 +1,4 @@
+{"headerId": "4", "timeStamp": "2022-03-30T09:51:41.405124+00:00", "manufacturer": "TL_TUD", "serialNumber": "4", "lastNodeId": "0", "batteryState": {"batteryCharge": "100"}, "errors": [{"errorType": "0", "errorLevel": "WARNING"}], "agvPosition": {"x": 9.4777, "y": 2.1158, "theta": 0.0009999996666689628}, "loads": [{"loadId": "0"}]}
+{"timeStamp" : "2021-10-14T20:35:33+00:00", "manufacturer" : "TL_TUD", "serialNumber" : "Virtual_AGV"}
+{"timeStamp" : "2021-10-14T20:35:33+00:00", "manufacturer" : "TL_TUD", "serialNumber" : "Virtual_AGV", "lastNodeId" : "31762128", "batteryState" : {"batteryCharge" : 88.0}, "errors" : [{"errorType" : "83", "errorLevel" : "WARNING"}, {"errorType" : "16", "errorLevel" : "FATAL"}], "loads" : [{"loadId" : "47"}, {"loadId" : "23"}]}
+{"timeStamp" : "2021-10-14T19:32:20+00:00", "manufacturer" : "TL_TUD", "serialNumber" : "Virtual_AGV", "lastNodeId" : "31762128", "batteryState" : {"batteryCharge" : 86.0}, "errors" : [{"errorType" : "83", "errorLevel" : "WARNING"}, {"errorType" : "16", "errorLevel" : "FATAL"}], "agvPosition" : {"x" : 4.3, "y" : 2.5, "theta" : 1.0}, "loads" : [{"loadId" : "47"}, {"loadId" : "23"}]}
\ No newline at end of file