diff --git a/build.gradle b/build.gradle
index 0c967f8961b2e7a1d9ba9aeaed996b08daf2c793..04460810d6e1f42e6dfc902b30318b6f3fcf8333 100644
--- a/build.gradle
+++ b/build.gradle
@@ -43,6 +43,7 @@ bootRun{
 }
 
 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.+'
diff --git a/emf_datamodel/model/iPos_Datamodel.aird b/emf_datamodel/model/iPos_Datamodel.aird
index c2d8a267b053507117f88d3bfa14aeedd8396357..e1cba59c8e3f8bf0892133fda2f02c9c295b7f66 100644
--- a/emf_datamodel/model/iPos_Datamodel.aird
+++ b/emf_datamodel/model/iPos_Datamodel.aird
@@ -5,7 +5,7 @@
     <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="312793ea-fa37-4cd3-9270-a2f279f61765">
+      <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>
@@ -13,7 +13,7 @@
         <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="c29febc3-272a-4523-bfce-a791886b5899">
+      <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>
@@ -29,6 +29,10 @@
         <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">
@@ -45,7 +49,7 @@
             <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"/>
@@ -58,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"/>
@@ -75,7 +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"/>
+          <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"/>
@@ -84,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"/>
@@ -93,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"/>
@@ -102,7 +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"/>
+          <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"/>
@@ -123,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="1332" y="984" 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"/>
@@ -132,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"/>
@@ -149,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="1017" y="990" 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"/>
@@ -170,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="1161" y="990" 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"/>
@@ -187,7 +191,7 @@
             <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"/>
@@ -204,7 +208,7 @@
             <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"/>
@@ -213,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"/>
@@ -234,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"/>
@@ -243,7 +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"/>
+          <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"/>
@@ -268,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"/>
@@ -281,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"/>
@@ -290,7 +294,7 @@
             <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"/>
@@ -303,7 +307,7 @@
             <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"/>
@@ -324,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"/>
@@ -337,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"/>
@@ -350,7 +354,7 @@
             <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"/>
@@ -363,7 +367,7 @@
             <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"/>
+          <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"/>
@@ -384,7 +388,7 @@
             <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"/>
@@ -405,7 +409,7 @@
             <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="-24" width="132" height="106"/>
+          <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"/>
@@ -422,7 +426,7 @@
             <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"/>
+          <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"/>
@@ -470,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"/>
@@ -479,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"/>
@@ -492,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"/>
@@ -505,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"/>
@@ -514,7 +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"/>
+          <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"/>
@@ -527,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"/>
@@ -548,7 +552,7 @@
             <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">
@@ -563,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">
@@ -631,7 +635,7 @@
             <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="2640" y="484" 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"/>
@@ -713,7 +717,7 @@
             <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="1536" y="564" width="171" height="75"/>
+          <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"/>
@@ -755,7 +759,7 @@
             <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="1877" y="954" width="190" height="142"/>
+          <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"/>
@@ -815,18 +819,18 @@
         </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="_s-PXcAQkEey-kNQ7esRa_g" type="4001" element="_s-J3-AQkEey-kNQ7esRa_g" source="_Pg1TsAQjEey-kNQ7esRa_g" target="_hS0UIAQOEey-kNQ7esRa_g">
@@ -847,77 +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="_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="_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"/>
@@ -927,17 +915,17 @@
         </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>
@@ -1023,17 +1011,17 @@
         </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>
@@ -1087,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>
@@ -1229,68 +1217,21 @@
           <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, 100, 172, 58]$[0, 109, 172, 67]$[-171, 109, 1, 67]$[-171, 91, 1, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eXowoAcoEey-kNQ7esRa_g" id="(0.0,0.06542056074766354)"/>
-        </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="_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="7" y="-9"/>
-          </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="20" 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="3" y="9"/>
-          </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="[74, 0, -9, -101]$[74, 45, -9, -56]$[83, 45, 0, -56]$[83, 61, 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)"/>
-        </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"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_pBWOwBFDEeydeasO1RaQEg" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pBWOwRFDEeydeasO1RaQEg" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_pBbHQBFDEeydeasO1RaQEg" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pBbHQRFDEeydeasO1RaQEg" 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)"/>
-        </edges>
         <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"/>
@@ -1309,145 +1250,129 @@
         </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="-13" y="-10"/>
+            <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="14"/>
+            <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="-3" y="10"/>
+            <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="[-60, 49, -440, -161]$[-60, 180, -440, -30]$[380, 180, 0, -30]"/>
+          <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="-1" y="10"/>
+            <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="50" y="10"/>
+            <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="27"/>
+            <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, 329, 79]$[36, 90, 329, 131]$[-383, 90, -90, 131]$[-383, -28, -90, 13]"/>
+          <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="-212" y="33"/>
+            <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="61" y="10"/>
+            <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="-71" y="10"/>
+            <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="[19, -48, -297, -618]$[54, -48, -262, -618]$[54, 677, -262, 107]$[316, 677, 0, 107]$[316, 668, 0, 98]"/>
+          <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="-99" y="-20"/>
+            <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="159" y="10"/>
+            <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="4" y="10"/>
+            <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, -68, -95, -582]$[138, -68, 0, -582]$[138, 514, 0, 0]"/>
+          <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" y="-10"/>
+            <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" y="10"/>
+            <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" y="10"/>
+            <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, 212, 35]$[-212, 35, 0, 35]"/>
+          <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" y="-10"/>
+            <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" y="10"/>
+            <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" y="10"/>
+            <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="[0, 0, 0, -148]$[0, 148, 0, 0]"/>
+          <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="10" y="-10"/>
+            <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="97" y="10"/>
+            <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="3" y="10"/>
+            <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, -572, 272]$[81, 50, -522, 272]$[81, -223, -522, -1]$[603, -223, 0, -1]"/>
+          <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="_TlgywCdREey8t_kDLBrwCg" type="4001" element="_cB2dzAWjEey-kNQ7esRa_g" source="_NxDRoAWjEey-kNQ7esRa_g" target="_YB0RsATxEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_TlmSUCdREey8t_kDLBrwCg" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TlmSUSdREey8t_kDLBrwCg" x="-132" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_Tlm5YCdREey8t_kDLBrwCg" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tlm5YSdREey8t_kDLBrwCg" x="-2" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_TlngcCdREey8t_kDLBrwCg" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TlngcSdREey8t_kDLBrwCg" y="128"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_TlgywSdREey8t_kDLBrwCg" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_TlgywidREey8t_kDLBrwCg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TlgywydREey8t_kDLBrwCg" points="[0, 0, 195, -297]$[0, 14, 195, -283]$[-71, 14, 124, -283]$[-71, 346, 124, 49]$[-157, 346, 38, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TlrK0CdREey8t_kDLBrwCg" id="(0.5,1.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TlrK0SdREey8t_kDLBrwCg" id="(0.6779661016949152,0.04672897196261682)"/>
-        </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" y="-10"/>
+            <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" y="10"/>
+            <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" y="10"/>
+            <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, -124, 84]$[60, 0, -64, 84]$[60, -85, -64, -1]$[119, -85, -5, -1]"/>
+          <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>
@@ -1467,21 +1392,101 @@
           <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="_365fUCxSEeyc2bacnWuMrg" type="4001" element="_36hE0CxSEeyc2bacnWuMrg" source="_ipaesCxSEeyc2bacnWuMrg" target="_lCMqkAZsEey-kNQ7esRa_g">
-          <children xmi:type="notation:Node" xmi:id="_366GYCxSEeyc2bacnWuMrg" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_366GYSxSEeyc2bacnWuMrg" y="-10"/>
+        <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="_AnXGEur2EeyhBPt9z4CQLw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AnXGE-r2EeyhBPt9z4CQLw" y="10"/>
+          </children>
+          <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="_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="_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="_EmyJAur2EeyhBPt9z4CQLw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EmyJA-r2EeyhBPt9z4CQLw" y="10"/>
+          </children>
+          <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="_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="_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="_366GYixSEeyc2bacnWuMrg" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_366GYyxSEeyc2bacnWuMrg" 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="_366GZCxSEeyc2bacnWuMrg" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_366GZSxSEeyc2bacnWuMrg" 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="_365fUSxSEeyc2bacnWuMrg" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_365fUixSEeyc2bacnWuMrg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_365fUyxSEeyc2bacnWuMrg" points="[0, 0, 146, 0]$[-146, 0, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_366GZixSEeyc2bacnWuMrg" id="(0.0,0.07142857142857142)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_366GZyxSEeyc2bacnWuMrg" id="(1.0,0.07142857142857142)"/>
+          <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>
@@ -1585,7 +1590,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="_beGW8AQjEey-kNQ7esRa_g" name="Placing" tooltipText="" outgoingEdges="_OlBg0AQlEey-kNQ7esRa_g _S3W4sAQlEey-kNQ7esRa_g" incomingEdges="_t9fiEwQxEey-kNQ7esRa_g _92h2_gccEey-kNQ7esRa_g _Q-uURhuHEeyPOIo-WqURQQ _G94qwBxXEeyPOIo-WqURQQ _RCvPUgcsEey-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>
@@ -1607,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>
@@ -1891,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>
@@ -1943,7 +1951,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="_YBru0ATxEey-kNQ7esRa_g" name="Quaternion" tooltipText="" outgoingEdges="_eXVOvgcoEey-kNQ7esRa_g" incomingEdges="_cB2dzAWjEey-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>
@@ -2306,7 +2314,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="_lBuJcAZsEey-kNQ7esRa_g" name="PositionEvent" tooltipText="" outgoingEdges="_92h2_gccEey-kNQ7esRa_g _rz8c8CxEEeyc2bacnWuMrg" incomingEdges="_36hE0CxSEeyc2bacnWuMrg" 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>
@@ -2379,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>
@@ -2616,18 +2624,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="_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="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"/>
@@ -2677,7 +2673,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="_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>
@@ -2776,7 +2772,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: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">
@@ -3083,6 +3079,9 @@
     <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>
@@ -3191,6 +3190,18 @@
         <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"/>
@@ -3617,7 +3628,7 @@
             <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="183"/>
+          <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"/>
@@ -3716,7 +3727,7 @@
             <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="582" y="168" width="153" height="231"/>
+          <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"/>
@@ -3758,7 +3769,7 @@
             <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="936" y="354" width="120" height="100"/>
+          <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"/>
@@ -3767,7 +3778,7 @@
             <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="780" y="516" width="120" height="100"/>
+          <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"/>
@@ -3780,7 +3791,7 @@
             <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="936" y="516" width="120" height="100"/>
+          <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"/>
@@ -3793,7 +3804,7 @@
             <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="1524" y="348" width="144" height="100"/>
+          <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"/>
@@ -3806,7 +3817,7 @@
             <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="1458" y="522" width="120" height="100"/>
+          <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"/>
@@ -3815,7 +3826,7 @@
             <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="1602" y="522" width="141" height="100"/>
+          <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"/>
@@ -3828,7 +3839,7 @@
             <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="1308" y="522" width="120" height="100"/>
+          <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"/>
@@ -3841,7 +3852,7 @@
             <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="1776" y="522" width="138" height="100"/>
+          <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"/>
@@ -3854,7 +3865,7 @@
             <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="1074" y="516" width="174" height="100"/>
+          <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"/>
@@ -3899,7 +3910,7 @@
             <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="252" y="367" width="213" height="212"/>
+          <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">
@@ -4075,6 +4086,9 @@
     <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>
@@ -4235,6 +4249,9 @@
     <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>
@@ -5780,4 +5797,20 @@
     <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 e58900e1c4a8e5e91d8ad27e8e16813d56a46c5b..c71f06926d60eeb87f7ce2802ed370f18b82d6a1 100644
--- a/emf_datamodel/model/iPos_Datamodel.ecore
+++ b/emf_datamodel/model/iPos_Datamodel.ecore
@@ -120,13 +120,13 @@
     <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="EventFilterConfiguration">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="positionAmbiguityStrategy"
@@ -145,7 +145,7 @@
       </eGenericType>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="eventfiltercondition" upperBound="-1"
-        eType="#//EventFilterCondition"/>
+        eType="#//TrackingTask"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="MonitoringTask">
     <eStructuralFeatures xsi:type="ecore:EReference" name="eventfilterconfiguration"
@@ -177,7 +177,7 @@
     <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#//IntObject"/>
+        <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//DoubleObject"/>
       </eGenericType>
     </eStructuralFeatures>
   </eClassifiers>
@@ -482,4 +482,5 @@
       <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 0eabcb09ce84e27d1ef4ecaae2585727b32b7b00..d7797a7d1bcc86c58d6ea2e826c9d0f19885601f 100644
--- a/emf_datamodel/model/iPos_Datamodel.genmodel
+++ b/emf_datamodel/model/iPos_Datamodel.genmodel
@@ -116,10 +116,10 @@
       <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#//EventFilterConfiguration">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//EventFilterConfiguration/positionAmbiguityStrategy"/>
@@ -388,5 +388,7 @@
         <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/init_Industrierobotik.txt b/init_Industrierobotik.txt
index c5e6fbd05b77e3b66691dbe9b825c8c78b27de6f..969b1b7c0a18d45c5c21cd9c7c5cafe4bc813bf6 100644
--- a/init_Industrierobotik.txt
+++ b/init_Industrierobotik.txt
@@ -1,5 +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": "TL_TUD-Virtual_AGV", "sensorId": "TL_TUD-Virtual_AGV", "agentType": "Robot", "sensorType": "virtual"}]}
+{"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/src/main/java/ipos/project/CustomLoggingFilter.java b/src/main/java/ipos/project/CustomLoggingFilter.java
index e587e5d112aa72c997ddc83e8a4e45321e99c4f6..d3ff6af081244c55f2894828415cd761744b9d4e 100644
--- a/src/main/java/ipos/project/CustomLoggingFilter.java
+++ b/src/main/java/ipos/project/CustomLoggingFilter.java
@@ -27,11 +27,11 @@ public class CustomLoggingFilter extends Filter<ILoggingEvent> {
         } else if (event.getMessage().contains("OP:")){
             return FilterReply.DENY;
         } else if (event.getMessage().contains("TOOZ:")){
-            return FilterReply.DENY;
-        } else if (event.getMessage().contains("VDA5050:")){
             return FilterReply.ACCEPT;
+        } else if (event.getMessage().contains("VDA5050:")){
+            return FilterReply.DENY;
         } else if (event.getMessage().contains("OSM:")){
-            return FilterReply.ACCEPT;
+            return FilterReply.DENY;
         }else if (event.getMessage().contains("SHELL:")){
             return FilterReply.ACCEPT;
         } else {
diff --git a/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java
index 1abe06f13cac15f0ef956b4d4af8fef54011a4ca..6f124e36152f04877cc9c4b228b79d07889a6b91 100644
--- a/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java
+++ b/src/main/java/ipos/project/DataModellntegration/VDA5050Processor/api/MqttRequestHandler.java
@@ -50,6 +50,7 @@ public class MqttRequestHandler implements Handler {
             // 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) {
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/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/IPos_DatamodelPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java
index e25b6fcdada8adc5dcf7452101c0c58ac01a091c..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
@@ -1345,40 +1345,40 @@ public interface IPos_DatamodelPackage extends EPackage {
 	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 feature id for the '<em><b>LObject Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Zonedescriptors</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int POSITION_EVENT__LOBJECT_ID = 2;
+	int POSITION_EVENT__ZONEDESCRIPTORS = 2;
 
 	/**
-	 * The feature id for the '<em><b>Zonedescriptors</b></em>' reference list.
+	 * The feature id for the '<em><b>Placing</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int POSITION_EVENT__ZONEDESCRIPTORS = 3;
+	int POSITION_EVENT__PLACING = 3;
 
 	/**
 	 * The number of structural features of the '<em>Position Event</em>' class.
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 90dc7f097288237be9c2ab3437dc889edb24a74c..ab6af1cfa47b712f7b5d9ece5883050dd9625a8d 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/PositionEvent.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/PositionEvent.java
@@ -15,10 +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()
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/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/IPos_DatamodelPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java
index a6473c7b9202d8178ab748edfd6e14bb45b3cfd0..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
@@ -1211,7 +1211,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * @generated
 	 */
 	public EReference getPositionEvent_Placing() {
-		return (EReference) positionEventEClass.getEStructuralFeatures().get(0);
+		return (EReference) positionEventEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -1220,7 +1220,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * @generated
 	 */
 	public EAttribute getPositionEvent_TimeStamp() {
-		return (EAttribute) positionEventEClass.getEStructuralFeatures().get(1);
+		return (EAttribute) positionEventEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1229,7 +1229,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * @generated
 	 */
 	public EAttribute getPositionEvent_LObjectId() {
-		return (EAttribute) positionEventEClass.getEStructuralFeatures().get(2);
+		return (EAttribute) positionEventEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1238,7 +1238,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 * @generated
 	 */
 	public EReference getPositionEvent_Zonedescriptors() {
-		return (EReference) positionEventEClass.getEStructuralFeatures().get(3);
+		return (EReference) positionEventEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -1903,10 +1903,10 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		createEAttribute(beaconEClass, BEACON__SENSOR_ID);
 
 		positionEventEClass = createEClass(POSITION_EVENT);
-		createEReference(positionEventEClass, POSITION_EVENT__PLACING);
 		createEAttribute(positionEventEClass, POSITION_EVENT__TIME_STAMP);
 		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);
@@ -2253,9 +2253,6 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 
 		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);
@@ -2265,6 +2262,9 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		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(eventFilterConfigurationEClass, EventFilterConfiguration.class, "EventFilterConfiguration",
 				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2287,7 +2287,7 @@ 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);
 
@@ -2335,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(theXMLTypePackage.getIntObject());
+		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);
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 f3304f492d83224e13d93629095923775e3c9767..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
@@ -29,25 +29,15 @@ import org.eclipse.emf.ecore.util.EObjectResolvingEList;
  * 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.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPlacing()
-	 * @generated
-	 * @ordered
-	 */
-	protected Placing placing;
-
 	/**
 	 * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -98,6 +88,16 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 	 */
 	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 -->
 	 * <!-- end-user-doc -->
@@ -222,16 +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__PLACING:
-			if (resolve)
-				return getPlacing();
-			return basicGetPlacing();
 		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();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -245,9 +245,6 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 	@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;
@@ -258,6 +255,9 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 			getZonedescriptors().clear();
 			getZonedescriptors().addAll((Collection<? extends ZoneDescriptor>) newValue);
 			return;
+		case IPos_DatamodelPackage.POSITION_EVENT__PLACING:
+			setPlacing((Placing) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -270,9 +270,6 @@ 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;
@@ -282,6 +279,9 @@ public class PositionEventImpl extends MinimalEObjectImpl.Container implements P
 		case IPos_DatamodelPackage.POSITION_EVENT__ZONEDESCRIPTORS:
 			getZonedescriptors().clear();
 			return;
+		case IPos_DatamodelPackage.POSITION_EVENT__PLACING:
+			setPlacing((Placing) null);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -294,14 +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);
 	}
diff --git a/src/main/java/ipos/project/MainApp.java b/src/main/java/ipos/project/MainApp.java
index 7e0f566992bfc948dd90d467750ed2a0b076a014..afc4e06806beac18915cf318692c2b2038a71099 100644
--- a/src/main/java/ipos/project/MainApp.java
+++ b/src/main/java/ipos/project/MainApp.java
@@ -38,7 +38,7 @@ public class MainApp {
     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 setMonitoringTarget";
+    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";
diff --git a/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java b/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java
index 94cb651a61e2afe793b23829b5a7e6526bf407ec..6521457779b52175d6fb0a5310eef41f056cb19c 100644
--- a/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java
+++ b/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java
@@ -3,6 +3,9 @@ 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;
@@ -55,6 +58,24 @@ public class GenericSensorValueProcessor {
         }
     }
 
+    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);
@@ -63,7 +84,7 @@ public class GenericSensorValueProcessor {
         OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iPosRawdataEventWrapper_proto);
     }
 
-    private static void logging_tooz(GenericSensor.IPosUWBEvent event_proto, String monitoringTaskId, String serializationType) {
+    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: ");
     }
diff --git a/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java b/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java
index 5c9dbd7bf471b26856215930298d3c5d204764cc..49d027329b688dab1dd368578e95a82a3da48936 100644
--- a/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java
+++ b/src/main/java/ipos/project/SensorValueIntegration/Service/GenericSensorTransformer.java
@@ -4,6 +4,7 @@ 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;
@@ -99,12 +100,10 @@ public class GenericSensorTransformer {
     }
 
     public static UWB uwb_GSensor2Internal(GenericSensor.UWBRawDataEvent proto_uwbRawDataEvent) {
-        UWB internal_uwbRawDataEvent = modelFactory.createUWB();
-        internal_uwbRawDataEvent.setTimeStamp(proto_uwbRawDataEvent.getTimestamp());
-        internal_uwbRawDataEvent.setDistances(convertToStringToDoubleMap(proto_uwbRawDataEvent.getDistancesMap()));
-        internal_uwbRawDataEvent.setType(proto_uwbRawDataEvent.getType());
-        internal_uwbRawDataEvent.setSensorId(proto_uwbRawDataEvent.getSensorId());
-        return internal_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 {
@@ -129,7 +128,19 @@ public class GenericSensorTransformer {
        return iPosUWBEvent;
    }
 
-    private static Map<String, String> beaconDistances_internal2GSensor(Map<String, Double> distances) {
+    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()));
@@ -144,15 +155,48 @@ public class GenericSensorTransformer {
         protoIPosUWBEvent.setAgentType(iPosUWBEvent_internal.getAgentType());
         protoIPosUWBEvent.setSensorType(iPosUWBEvent_internal.getSensorType());
         protoIPosUWBEvent.setTimeStamp(iPosUWBEvent_internal.getTimeStamp());
-        protoIPosUWBEvent.putAllDistances(beaconDistances_internal2GSensor(iPosUWBEvent_internal.getDistances()));
+        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 3fbf313eb9b92e32a4fb473c87b720cc0ed58480..e6f492767b20970cce26e36031d0ab7b833b2b01 100644
--- a/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java
+++ b/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java
@@ -4,10 +4,7 @@ import com.google.protobuf.InvalidProtocolBufferException;
 import ipos.models.GenericSensor;
 import ipos.models.GenericSensor.SensorPositionEvent;
 import ipos.models.GenericSensor.SensorEventWrapper;
-import ipos.project.DataModellntegration.iPos_Datamodel.IMU;
-import ipos.project.DataModellntegration.iPos_Datamodel.NFC;
-import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
-import ipos.project.DataModellntegration.iPos_Datamodel.UWB;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
 import ipos.project.SensorValueIntegration.Service.GenericSensorTransformer;
 import ipos.project.UseCaseController.PositionMonitoring;
 import ipos.project.config.mqtt.Handler;
@@ -59,7 +56,7 @@ public class MqttPositionHandler implements Handler {
         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());
@@ -67,6 +64,19 @@ public class MqttPositionHandler implements Handler {
         // 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;
diff --git a/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java b/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java
index 815540076adc061ab06b1d25c2509007df6c3c4f..a885091d32e2fdd0a92e26703f5c3210bf5512a2 100644
--- a/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java
+++ b/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java
@@ -63,6 +63,13 @@ public class PositionMonitoring {
         }
     }
 
+    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);
@@ -73,6 +80,8 @@ public class PositionMonitoring {
         Optional<PositionEvent> optionalPositionEvent = Optional.empty();
         try {
             optionalPositionEvent = Triangulation.update(uwbRawDataEvent);
+            // optionalPositionEvent = PositionCalculation.updateUWBPositionFromDistances(uwbRawDataEvent);
+            // = PositionCalculation.updateBTDistancesFromRSS(
         } catch (ParseException e) {
             e.printStackTrace();
         }
@@ -99,12 +108,12 @@ public class PositionMonitoring {
 
             LocalizableObject lObject = PositionMonitoring.getLObjectByIdOrNull(beaconFilteringResult.getBeaconRawdataEvent().getSensorId());
             if (null == lObject || null == lObject.getAgent()) {
-                LOG.error("Internal UWB-Rawdata could not be transformed into IPosUWBEvent " +
+                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((UWB) beaconFilteringResult.getBeaconRawdataEvent(), beaconFilteringResult.getMonitoringTaskId(), eFilter.getSerializationType(), lObject.getAgent().getId(), lObject.getAgent().getAgentType());
+            GenericSensorValueProcessor.receiveMessage(beaconFilteringResult.getBeaconRawdataEvent(), beaconFilteringResult.getMonitoringTaskId(), eFilter.getSerializationType(), lObject.getAgent().getId(), lObject.getAgent().getAgentType());
         }
     }
 
@@ -337,7 +346,7 @@ public class PositionMonitoring {
         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 = zonePopulation.get(zoneId);
+            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();
@@ -657,10 +666,7 @@ public class PositionMonitoring {
     }
 
     private static boolean isLocatedInsideZone(String zoneId, String agentId) {
-        List<String> agentsInsideZone = zonePopulation.get(zoneId);
-        if (null == agentsInsideZone) {
-            return false;
-        }
+        List<String> agentsInsideZone = Optional.ofNullable(zonePopulation.get(zoneId)).orElse(new LinkedList<>());
         return agentsInsideZone.contains(agentId);
     }
 
diff --git a/src/main/java/ipos/project/iposextension/osm/OSM.java b/src/main/java/ipos/project/iposextension/osm/OSM.java
index 8dfc82a619c518a2a022312f42bb4d468d1e2796..84de78034cb783d277dbdb0936f5106689ab1817 100644
--- a/src/main/java/ipos/project/iposextension/osm/OSM.java
+++ b/src/main/java/ipos/project/iposextension/osm/OSM.java
@@ -24,6 +24,10 @@ public class OSM {
     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){
@@ -31,10 +35,9 @@ public class OSM {
         OSMIPosMonitoringWrapperMqtt.setMqttService(mqttService);
         OSMExtInputMqtt.setMqttService(mqttService);
         OSMExtOutputMqtt.setMqttService(mqttService);
+        osmExt.initOSM_drawWaypoints();
     }
 
-    static private OSMExt osmExt = new OSMExt();
-
     public static void handleOSMObject(OSMObject osmObject) {
         osmExt.handleOSMObject(osmObject);
     }
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExt.java b/src/main/java/ipos/project/iposextension/osm/OSMExt.java
index b382267e27043130b1187ed38950bb96589b76f1..f51a486c73aa8fc3c0c5cfd7ce72c36ec118a5ee 100644
--- a/src/main/java/ipos/project/iposextension/osm/OSMExt.java
+++ b/src/main/java/ipos/project/iposextension/osm/OSMExt.java
@@ -9,16 +9,72 @@ 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 static ipos.project.iposextension.tooz.Tooz.TOOZ_MONITORINGTASKID;
+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) {}
 
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java
index ee4da3dac617b1570438e4bf4d6843883ea0aa62..99a4f963dd113467c3b948a309925d8c41566256 100644
--- a/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java
+++ b/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java
@@ -1,5 +1,6 @@
 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;
@@ -19,7 +20,11 @@ public class OSMExtOutputMqtt implements Handler {
         OSMExtOutputMqtt.mqttService = mqttService;
     }
 
-   @Override
+    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){
diff --git a/src/main/java/ipos/project/iposextension/tooz/Tooz.java b/src/main/java/ipos/project/iposextension/tooz/Tooz.java
index a0bcbd285eef7dc051138ac96b1c2029604049d6..49025e7bc380eab90aa71b33fda71779e652793d 100644
--- a/src/main/java/ipos/project/iposextension/tooz/Tooz.java
+++ b/src/main/java/ipos/project/iposextension/tooz/Tooz.java
@@ -1,5 +1,7 @@
 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;
@@ -25,10 +27,29 @@ public class Tooz {
     // 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);
@@ -52,9 +73,17 @@ public class Tooz {
 
     static private ToozExt toozExt = new ToozExt();
 
-    public static void handleIPosUWBEvent(IPosUWBEvent iPosUWBEvent_internal) {
+    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(iPosUWBEvent_internal);
+            toozExt.handleRawdataEvent(iPosBeaconEvent);
         } catch (RuntimeException e) {
             LOG.info(e.getMessage());
         }
@@ -67,21 +96,27 @@ public class Tooz {
         }
     }
 
+    /**
+     * 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);
-        ToozMonitoringTarget newlyRegisteredTarget = new ToozMonitoringTarget(monitoringTarget_internal.getTargetSensorId());
+        ToozLocalAgent newlyRegisteredTarget = new ToozLocalAgent(monitoringTarget_internal.getTargetSensorId());
         toozExt.getAllCurrentlyMonitoredTargets().add(newlyRegisteredTarget);
     }
 
     public static void updateToozBackend() {
         LOG.info("TOOZ: Updating tooz-backend");
-        List<ToozMonitoringTarget> allCurrentlyMonitoredTargets = toozExt.getAllCurrentlyMonitoredTargets();
+        List<ToozLocalAgent> allCurrentlyMonitoredTargets = toozExt.getAllCurrentlyMonitoredTargets();
         allCurrentlyMonitoredTargets.stream().forEach(monitoredTarget -> updateToozBackendForTarget(monitoredTarget));
     }
 
-    private static void updateToozBackendForTarget(ToozMonitoringTarget monitoredTarget) {
+    private static void updateToozBackendForTarget(ToozLocalAgent monitoredTarget) {
         if (!monitoredTarget.hasChangedSinceLastUpdate()){
             return;
         }
@@ -93,12 +128,13 @@ public class Tooz {
         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);
+        //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(ToozMonitoringTarget monitoredTarget, Map.Entry<String, Double> nearestDistantEntity) {
+    private static DistantEntity createDistantEntityFromMonitoredTarget(ToozLocalAgent monitoredTarget, Map.Entry<String, Double> nearestDistantEntity) {
         DistantEntity distantEntity = toozFactory.createDistantEntity();
         distantEntity.setLocalSensorId(monitoredTarget.getTargetSensorId());
         distantEntity.setLocalAgentId(monitoredTarget.getLocalAgentId());
@@ -110,7 +146,7 @@ public class Tooz {
         return distantEntity;
     }
 
-    private static List<Map.Entry<String, Double>> extractSortedDistances(ToozMonitoringTarget monitoredTarget) {
+    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()));
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozExt.java b/src/main/java/ipos/project/iposextension/tooz/ToozExt.java
index 18ab3870904b23ee5f9aee9da82df403d6861df3..453858b356e8c9f8f23ab746683b9b53163c43e1 100644
--- a/src/main/java/ipos/project/iposextension/tooz/ToozExt.java
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozExt.java
@@ -2,29 +2,35 @@ package ipos.project.iposextension.tooz;
 
 import com.google.protobuf.InvalidProtocolBufferException;
 import ipos.models.SimpleScene;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosUWBEvent;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+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();
 
-    protected List<ToozMonitoringTarget> getAllCurrentlyMonitoredTargets() {
+    public ToozExt() {
+        initStomp();
+    }
+
+    private WebSocketService webSocketService;
+
+    protected List<ToozLocalAgent> getAllCurrentlyMonitoredTargets() {
         return allCurrentlyMonitoredTargets;
     }
 
-    private List<ToozMonitoringTarget> allCurrentlyMonitoredTargets = new LinkedList<>();
+    private List<ToozLocalAgent> allCurrentlyMonitoredTargets = new LinkedList<>();
 
     @Override
     public void handlePositionEvent(IposPositionEvent posEvent) {}
@@ -36,8 +42,22 @@ public class ToozExt extends IPosExtension {
     public void handleRawdataEvent(IPosRawdataEvent iPosRawdataEvent) {
         if (iPosRawdataEvent instanceof IPosUWBEvent){
             IPosUWBEvent iPosUWBEvent = (IPosUWBEvent) iPosRawdataEvent;
-            handleIPosUWBEvent(iPosUWBEvent);
+            handleIPosBeaconEvent((IPosBeaconEvent) iPosUWBEvent);
         }
+        if (iPosRawdataEvent instanceof IPosBTEvent){
+            IPosBTEvent iPosBTEvent = (IPosBTEvent) iPosRawdataEvent;
+            if (null == iPosBTEvent.getDistances() && null != iPosBTEvent.getRss()) {
+                iPosBTEvent.setDistances(translateRssToDistances(iPosBTEvent));
+
+            }
+
+            handleIPosBeaconEvent((IPosBeaconEvent) iPosBTEvent);
+        }
+    }
+
+    private Map<String, Double> translateRssToDistances(IPosBTEvent iPosBTEvent) {
+        // currently rss is incorrectly translated into distances by creating a copy
+        return iPosBTEvent.getRss();
     }
 
     @Override
@@ -57,21 +77,49 @@ public class ToozExt extends IPosExtension {
         }
     }
 
-    protected void handleIPosUWBEvent(IPosUWBEvent iPosUWBEvent) {
-        LOG.info("TOOZ: Attempting to handle UWB rawdata event");
-        ToozMonitoringTarget toozMonitoringTarget = fetchMonitoringTarget(iPosUWBEvent);
-        toozMonitoringTarget.addOrUpdateDistances(iPosUWBEvent.getDistances());
-        toozMonitoringTarget.setLocalAgentId(iPosUWBEvent.getAgentId());
-        toozMonitoringTarget.setTimestamp(iPosUWBEvent.getTimeStamp()); // the time when the distances to the distant entities have been updated the previous time
-        LOG.info("TOOZ: ToozExt received rawdata event: UWB. Monitoring target (sensorId): " + iPosUWBEvent.getSensorId() + ", agent: " + iPosUWBEvent.getAgentId() + ", timestamp: " + iPosUWBEvent.getTimeStamp());
+    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 ToozMonitoringTarget fetchMonitoringTarget(IPosUWBEvent iPosUWBEvent) {
+    private ToozLocalAgent fetchMonitoringTarget(IPosBeaconEvent iPosUWBEvent) {
         String targetSensorId = iPosUWBEvent.getSensorId();
-        ToozMonitoringTarget monitoringTarget = allCurrentlyMonitoredTargets.stream().filter(
+        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 monitoringTarget;
+        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/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
index d840150244e9725bc16bd8041e129d1224dc550b..5fc8257ff8a0e23d77aa7f4e63bac879c5bdbe1a 100644
--- a/src/main/java/ipos/project/iposextension/tooz/ToozIPosRawdataMqtt.java
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozIPosRawdataMqtt.java
@@ -2,6 +2,7 @@ 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;
@@ -36,11 +37,18 @@ public class ToozIPosRawdataMqtt implements Handler {
         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());
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozMonitoringTarget.java b/src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java
similarity index 90%
rename from src/main/java/ipos/project/iposextension/tooz/ToozMonitoringTarget.java
rename to src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java
index b2c3b6ffeb20c73452fe4deea952f1940b7c67f4..b17454c589db2cb3b6486b470361b7eaa7c2a1d1 100644
--- a/src/main/java/ipos/project/iposextension/tooz/ToozMonitoringTarget.java
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java
@@ -3,9 +3,9 @@ package ipos.project.iposextension.tooz;
 import java.util.HashMap;
 import java.util.Map;
 
-public class ToozMonitoringTarget {
+public class ToozLocalAgent {
 
-    public ToozMonitoringTarget(String targetSensorId) {
+    public ToozLocalAgent(String targetSensorId) {
         this.targetSensorId = targetSensorId;
         this.targetData = new HashMap<>();
         this.localAgentId = "";
@@ -26,7 +26,7 @@ public class ToozMonitoringTarget {
     private String timestamp; // the time when the distances to the distant entities have been updated the previous time
 
     /**
-     * Returns true if this instance of ToozMonitoringTarget has to be regarded as having changed since the last
+     * 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
      */
@@ -35,7 +35,7 @@ public class ToozMonitoringTarget {
     }
 
     /**
-     * Sets the boolean value that defines whether this instance of ToozMonitoringTarget has to be
+     * 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
      */
diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozTrans.java b/src/main/java/ipos/project/iposextension/tooz/ToozTrans.java
index 13d2c11db5b34804dee90074646cc6ffa3fe77c0..84160f3ca63aba111a54b83b495debf3fa91b82c 100644
--- a/src/main/java/ipos/project/iposextension/tooz/ToozTrans.java
+++ b/src/main/java/ipos/project/iposextension/tooz/ToozTrans.java
@@ -2,6 +2,8 @@ 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;
@@ -18,16 +20,27 @@ public class ToozTrans {
 
     public static IPosUWBEvent uwb_proto2IPosRawdata(GenericSensor.IPosUWBEvent iPosUWBEvent_proto) {
         IPosUWBEvent iPosUWBEvent_internal = devKitFactory.createIPosUWBEvent();
-        iPosUWBEvent_internal.setAgentId(iPosUWBEvent_proto.getAgentId());
-        iPosUWBEvent_internal.setSensorId(iPosUWBEvent_proto.getSensorId());
-        iPosUWBEvent_internal.setAgentType(iPosUWBEvent_proto.getAgentType());
-        iPosUWBEvent_internal.setSensorType(iPosUWBEvent_proto.getSensorType());
-        iPosUWBEvent_internal.setTimeStamp(iPosUWBEvent_proto.getTimeStamp());
-        iPosUWBEvent_internal.setDistances(beaconDistances_String2Double(iPosUWBEvent_proto.getDistancesMap()));
-        return iPosUWBEvent_internal;
+        return ToozTrans.beacon_proto2IPosRawdata(iPosUWBEvent_internal, iPosUWBEvent_proto.getAgentId(), iPosUWBEvent_proto.getSensorId(), iPosUWBEvent_proto.getAgentType(), iPosUWBEvent_proto.getSensorType(), iPosUWBEvent_proto.getTimeStamp(), iPosUWBEvent_proto.getDistancesMap());
     }
 
-    private static Map<String, Double> beaconDistances_String2Double(Map<String, String> distances) {
+    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()));
@@ -51,4 +64,5 @@ public class ToozTrans {
         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/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_tooz.txt b/testdata_raw_tooz.txt
index 02cae32071af3507ddffd88d2fec9259cc5ccc22..2d43355a0ef2dfb817d8ab2ded2f07b7f49866c8 100644
--- a/testdata_raw_tooz.txt
+++ b/testdata_raw_tooz.txt
@@ -1,3 +1,4 @@
+{"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"}}]}
 {"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
index 0ae4ad5414bc8654860201c21509456778032bdf..48143b48f772541ac5626926f249db7e06626871 100644
--- a/testdata_raw_tooz_init.txt
+++ b/testdata_raw_tooz_init.txt
@@ -1 +1,2 @@
-{"monitoringTargets" : [{"targetSensorId" : "tooz_employee_uwb" }]}
\ No newline at end of file
+{"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
index 94df7e63f7aa411a38fcc79c1244495d0f89a95e..eff1fd29908c7433d0738efe842737dea4c6550d 100644
--- a/testdata_raw_vda5050.txt
+++ b/testdata_raw_vda5050.txt
@@ -1,3 +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