diff --git a/data/RobotAPI/VariantInfo-RobotAPI.xml b/data/RobotAPI/VariantInfo-RobotAPI.xml
index 572bd60560771143664906ff785964c233f5079e..8dee1c90a6e82984cc2144c5a1b29298cc0911aa 100644
--- a/data/RobotAPI/VariantInfo-RobotAPI.xml
+++ b/data/RobotAPI/VariantInfo-RobotAPI.xml
@@ -31,7 +31,8 @@
             memberName="platformUnitObserver"
             getterName="getPlatformUnitObserver"
             propertyName="PlatformUnitObserverName"
-            propertyIsOptional="false" />
+            propertyIsOptional="true"
+            propertyDefaultValue="PlatformUnitObserver" />
         <Proxy include="RobotAPI/interface/units/InertialMeasurementUnit.h"
             humanName="Inertial Measurement Unit Observer"
             typeName="InertialMeasurementUnitObserverInterfacePrx"
@@ -56,6 +57,14 @@
             propertyName="TCPControlUnitName"
             propertyIsOptional="true"
             propertyDefaultValue="TCPControlUnit" />
+        <Proxy include="RobotAPI/interface/units/TCPControlUnit.h"
+            humanName="TCPControlUnitObserver"
+            typeName="TCPControlUnitObserverInterfacePrx"
+            memberName="tcpControlUnitObserver"
+            getterName="getTCPControlUnitObserver"
+            propertyName="TCPControlUnitObserverName"
+            propertyIsOptional="true"
+            propertyDefaultValue="TCPControlUnitObserver" />
         <Proxy include="RobotAPI/interface/units/HapticUnit.h"
 			humanName="Haptic Unit Observer"
             typeName="HapticUnitObserverInterfacePrx"
diff --git a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitConfigDialog.h b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitConfigDialog.h
index 7c8b5905105e7ca0ca43494bdd2350906390c30c..3a13864f4448f85715c0e03a36ac88d732f32b2f 100644
--- a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitConfigDialog.h
+++ b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitConfigDialog.h
@@ -28,7 +28,7 @@
 
 #include <Core/core/IceManager.h>
 
-#include <Gui/ArmarXGuiLib/utility/IceProxyFinder.h>
+#include <Gui/libraries/ArmarXGuiBase/widgets/IceProxyFinder.h>
 
 namespace Ui {
     class HandUnitConfigDialog;
diff --git a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h
index 5c3ac80b240f27214542111830c78ed145e4ad99..d3706a9128d5504c3500eef63c26fec3a195e367 100644
--- a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h
@@ -28,8 +28,8 @@
 /* ArmarX headers */
 #include "ui_HandUnitGuiPlugin.h"
 #include <Core/core/Component.h>
-#include <Gui/ArmarXGuiLib/ArmarXGuiPlugin.h>
-#include <Gui/ArmarXGuiLib/ArmarXComponentWidgetController.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXGuiPlugin.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXComponentWidgetController.h>
 
 #include <RobotAPI/interface/units/HandUnitInterface.h>
 
diff --git a/source/RobotAPI/gui-plugins/HapticUnitPlugin/HapticUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/HapticUnitPlugin/HapticUnitGuiPlugin.h
index df2f2d60425ee235316c42f187c70cedf3e2d5a9..a466e382eeffebd3c1534d7ff888cff3ed50b786 100644
--- a/source/RobotAPI/gui-plugins/HapticUnitPlugin/HapticUnitGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/HapticUnitPlugin/HapticUnitGuiPlugin.h
@@ -28,8 +28,8 @@
 /* ArmarX headers */
 #include "ui_HapticUnitGuiPlugin.h"
 #include <Core/core/Component.h>
-#include <Gui/ArmarXGuiLib/ArmarXGuiPlugin.h>
-#include <Gui/ArmarXGuiLib/ArmarXComponentWidgetController.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXGuiPlugin.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXComponentWidgetController.h>
 #include <Core/observers/Observer.h>
 
 /* Qt headers */
diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.cpp b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.cpp
index 127e82ab774e5b76546c71865528d3ddf20391e4..4b0c7d6209d149221a18abc78d882bfd769ea56b 100644
--- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.cpp
+++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.cpp
@@ -34,7 +34,7 @@
 
 #include <IceUtil/UUID.h>
 
-#include <Gui/ArmarXGuiLib/utility/IceProxyFinder.h>
+#include <Gui/libraries/ArmarXGuiBase/widgets/IceProxyFinder.h>
 
 using namespace armarx;
 
diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.h b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.h
index 46d071855a7860e98f08bd31de660c8b93f60b94..59fdf584f1285a3ad0905322fab7c3d47377ed82 100644
--- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.h
+++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.h
@@ -30,7 +30,7 @@
 #include <Core/core/services/tasks/RunningTask.h>
 #include <Core/core/IceManager.h>
 #include <Core/core/ManagedIceObject.h>
-#include <Gui/ArmarXGuiLib/utility/IceProxyFinder.h>
+#include <Gui/libraries/ArmarXGuiBase/widgets/IceProxyFinder.h>
 
 namespace Ui {
     class KinematicUnitConfigDialog;
diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h
index 9b869e1eca52f40462c0a61da9ace7b729c280f1..721cd4bdd23360c4b67311163c3b7d39074fc603 100644
--- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h
@@ -30,8 +30,8 @@
 #include <RobotAPI/interface/units/KinematicUnitInterface.h>
 #include <RobotAPI/components/DebugDrawer/DebugDrawerComponent.h>
 
-#include <Gui/ArmarXGuiLib/ArmarXGuiPlugin.h>
-#include <Gui/ArmarXGuiLib/ArmarXComponentWidgetController.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXGuiPlugin.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXComponentWidgetController.h>
 
 #include <Core/core/Component.h>
 
diff --git a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitConfigDialog.h b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitConfigDialog.h
index 601e6ff76abd7a33a15e6a8c6a7548d4d75783a5..8c0040a6cfaadceb930fee91dc4dbb7334657e1d 100644
--- a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitConfigDialog.h
+++ b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitConfigDialog.h
@@ -26,7 +26,7 @@
 
 #include <QDialog>
 
-#include <Gui/ArmarXGuiLib/utility/IceProxyFinder.h>
+#include <Gui/libraries/ArmarXGuiBase/widgets/IceProxyFinder.h>
 #include <RobotAPI/interface/units/PlatformUnitInterface.h>
 
 namespace Ui {
diff --git a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h
index a760007a7247c15d143c7241a38fc6ef6e6c9477..5c794a22caea8efc57a108fe6507592bafc630a5 100644
--- a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h
@@ -27,10 +27,10 @@
 
 /* ArmarX headers */
 #include "ui_PlatformUnitGuiPlugin.h"
-#include <Gui/ArmarXGuiLib/utility/JoystickControlWidget.h>
+#include <Gui/libraries/ArmarXGuiBase/widgets/JoystickControlWidget.h>
 #include <Core/core/Component.h>
-#include <Gui/ArmarXGuiLib/ArmarXGuiPlugin.h>
-#include <Gui/ArmarXGuiLib/ArmarXComponentWidgetController.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXGuiPlugin.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXComponentWidgetController.h>
 
 #include <RobotAPI/interface/units/PlatformUnitInterface.h>
 
diff --git a/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerConfigDialog.cpp b/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerConfigDialog.cpp
index 1a55ec188de066156a7ac55027b9b3f3bda8313e..377034291670ebaa1abfced5818fda808e972ffb 100644
--- a/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerConfigDialog.cpp
+++ b/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerConfigDialog.cpp
@@ -31,7 +31,7 @@
 
 #include <IceUtil/UUID.h>
 
-#include <Gui/ArmarXGuiLib/utility/IceProxyFinder.h>
+#include <Gui/libraries/ArmarXGuiBase/widgets/IceProxyFinder.h>
 
 #include <RobotAPI/interface/core/RobotState.h>
 
diff --git a/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerConfigDialog.h b/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerConfigDialog.h
index bb60ccb157b8a6f807530b0d12e5052f89a568b0..b828a8e0e274bc540ec7dee4c5a8bcf3fb660669 100644
--- a/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerConfigDialog.h
+++ b/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerConfigDialog.h
@@ -30,7 +30,7 @@
 #include <Core/core/services/tasks/RunningTask.h>
 #include <Core/core/IceManager.h>
 #include <Core/core/ManagedIceObject.h>
-#include <Gui/ArmarXGuiLib/utility/IceProxyFinder.h>
+#include <Gui/libraries/ArmarXGuiBase/widgets/IceProxyFinder.h>
 
 namespace Ui {
     class RobotViewerConfigDialog;
diff --git a/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerGuiPlugin.h b/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerGuiPlugin.h
index 42162fce1afdfb58dc949512857df95508710cf0..6c323274f03677679a3be6006c6806a64b466bef 100644
--- a/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerGuiPlugin.h
@@ -30,8 +30,8 @@
 #include <RobotAPI/components/DebugDrawer/DebugDrawerComponent.h>
 #include <RobotAPI/libraries/core/remoterobot/RemoteRobot.h>
 
-#include <Gui/ArmarXGuiLib/ArmarXGuiPlugin.h>
-#include <Gui/ArmarXGuiLib/ArmarXComponentWidgetController.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXGuiPlugin.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXComponentWidgetController.h>
 
 #include <Core/core/Component.h>
 
diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.h b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.h
index 1320987e58419ecc3b6f1e4b45e52e8bcc85578e..0feebafb9a3defdd6401acd3b16209fe3e97111e 100644
--- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.h
+++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.h
@@ -27,7 +27,7 @@
 #include "ui_ArmarXPlotter.h"
 
 // ArmarX
-#include <Gui/ArmarXGuiLib/ArmarXComponentWidgetController.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXComponentWidgetController.h>
 #include <Gui/gui-plugins/ObserverPropertiesPlugin/ObserverItemModel.h>
 
 #include <Core/core/Component.h>
diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotterDialog.ui b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotterDialog.ui
index 4b9bd05e5b84667b21728366ff19aadf4d3470b8..62c86008dda2fa7387acecb86720ed205d32444c 100644
--- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotterDialog.ui
+++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotterDialog.ui
@@ -254,7 +254,7 @@
   <customwidget>
    <class>FilterableTreeView</class>
    <extends>QTreeView</extends>
-   <header location="global">Gui/ArmarXGui/Widgets/FilterableTreeView.h</header>
+   <header location="global">Gui/libraries/ArmarXGuiBase/widgets/FilterableTreeView.h</header>
   </customwidget>
  </customwidgets>
  <resources/>
diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXTCPMover/TCPMover.h b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXTCPMover/TCPMover.h
index 7a78b8ea09bf6977c1b6847b9dfe08efa9db797d..ff30cecd4c941193dc758574dc3525b57d0ffa26 100644
--- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXTCPMover/TCPMover.h
+++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXTCPMover/TCPMover.h
@@ -36,9 +36,9 @@
 #include <VirtualRobot/Nodes/RobotNode.h>
 #include <VirtualRobot/RobotNodeSet.h>
 #include <VirtualRobot/IK/DifferentialIK.h>
-#include <Gui/ArmarXGuiLib/utility/IceProxyFinder.h>
+#include <Gui/libraries/ArmarXGuiBase/widgets/IceProxyFinder.h>
 
-#include <Gui/ArmarXGuiLib/ArmarXComponentWidgetController.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXComponentWidgetController.h>
 
 // Qt includes
 #include <QDialog>
diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXTCPMover/TCPMoverConfigDialog.h b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXTCPMover/TCPMoverConfigDialog.h
index 1a0d8e1505fb9b1f1dcc94f68ccf854728168ddb..93ee533c9a575d7f3ec2fc9ee051f81b4f140538 100644
--- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXTCPMover/TCPMoverConfigDialog.h
+++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXTCPMover/TCPMoverConfigDialog.h
@@ -28,7 +28,7 @@
 
 #include <Core/core/IceManager.h>
 
-#include <Gui/ArmarXGuiLib/utility/IceProxyFinder.h>
+#include <Gui/libraries/ArmarXGuiBase/widgets/IceProxyFinder.h>
 
 namespace Ui {
     class TCPMoverConfigDialog;
diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/SensorActorWidgetsPlugin.h b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/SensorActorWidgetsPlugin.h
index 74ff45f2be8a0a3edd54437038092523c84db2b1..6a1c3e58fba666f4208d54dab05e6ac8b7e1b1a9 100644
--- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/SensorActorWidgetsPlugin.h
+++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/SensorActorWidgetsPlugin.h
@@ -24,7 +24,7 @@
 #ifndef ARMARX_COMPONENT_MDIGUIPLUGIN_H
 #define ARMARX_COMPONENT_MDIGUIPLUGIN_H
 
-#include <Gui/ArmarXGuiLib/ArmarXGuiPlugin.h>
+#include <Gui/libraries/ArmarXGuiBase/ArmarXGuiPlugin.h>
 
 #include <Core/core/system/ImportExportComponent.h>
 
diff --git a/source/RobotAPI/interface/hardware/BusInspectionInterface.ice b/source/RobotAPI/interface/hardware/BusInspectionInterface.ice
index bb3ca125fc08c696910eaab4fba6bbd5155811a6..cc8b22c61b5ade3cc29ba4eb0e1b666c66287a46 100644
--- a/source/RobotAPI/interface/hardware/BusInspectionInterface.ice
+++ b/source/RobotAPI/interface/hardware/BusInspectionInterface.ice
@@ -67,6 +67,7 @@ module armarx
         string type;
         string node;
         int heartBeatErrorCounter;
+	string firmwareBuildDate;
 
         DeviceStatus status;
     };