diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
index e4030a2d5ea0e4622a6d7dcbac74e69accedc2d3..8e8e8e655b2eaaf8d7512a55fb726a0ee02bd09e 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
@@ -164,10 +164,10 @@ namespace armarx
             widget.groupBoxSkillExecutions->layout(),
 
             widget.groupBoxSkills,
-            widget.splitter_2->layout(),
+            widget.splitter_2,
 
             widget.groupBoxSkillDetails,
-            widget.splitter_2->layout(),
+            widget.splitter_2,
 
             widget.updateWidgetLayout,
 
@@ -240,6 +240,7 @@ namespace armarx
     void
     SkillManagerMonitorWidgetController::connectGui()
     {
+        /*
         connect(this,
                 &SkillManagerMonitorWidgetController::disconnect,
                 this->mem_wrapper,
@@ -248,6 +249,7 @@ namespace armarx
                 &SkillManagerMonitorWidgetController::disconnect,
                 this->viewer,
                 &skills::gui::SkillMemoryGUI::disconnect);
+        */
     }
 
     SkillManagerMonitorWidgetController::~SkillManagerMonitorWidgetController()
diff --git a/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.cpp b/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.cpp
index d32f0dd866c39aa49cd79dbc37c8911a6a44aa6a..faacc352f9eab07ec12df979071727448083e7ba 100644
--- a/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.cpp
+++ b/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.cpp
@@ -7,15 +7,21 @@ namespace armarx::skills::gui
     SkillMemoryGUI::SkillMemoryGUI(QTreeWidget* _skillExecutionTreeWidget,
                                    QLayout* _skillExecutionTreeWidgetParentLayout,
                                    QGroupBox* _skillGroupBox,
-                                   QLayout* _skillGroupBoxParentLayout,
+                                   QSplitter* _skillGroupBoxParentLayout,
                                    QGroupBox* _skillDetailGroupBox,
-                                   QLayout* _skillDetailGroupBoxParentLayout,
+                                   QSplitter* _skillDetailGroupBoxParentLayout,
                                    QHBoxLayout* _updateWidgetLayout,
 
                                    std::shared_ptr<SkillManagerWrapper> _memory)
     {
         Logging::setTag("SkillMemoryGui");
 
+        // parameter check
+        ARMARX_CHECK(_skillExecutionTreeWidgetParentLayout);
+        ARMARX_CHECK(_skillGroupBoxParentLayout);
+        ARMARX_CHECK(_skillDetailGroupBoxParentLayout);
+        ARMARX_CHECK(_memory);
+
         // setup memory
         this->memory = _memory;
 
@@ -40,6 +46,12 @@ namespace armarx::skills::gui
             _skillDetailGroupBox, this->skillDetailGroupBox, _skillDetailGroupBoxParentLayout);
     }
 
+    void
+    SkillMemoryGUI::disconnect()
+    {
+        ARMARX_ERROR << "Not implemented";
+    }
+
     void
     SkillMemoryGUI::connectSignals()
     {
diff --git a/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.h b/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.h
index 5af80c8e3778ae99485caf03cf48394cf64a85ad..b0b6baf228bd50a4c73f0e2bc29f89ad6bb7aea2 100644
--- a/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.h
+++ b/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.h
@@ -2,6 +2,7 @@
 #define SKILLMEMORYGUI_H
 
 #include <QHBoxLayout>
+#include <QSplitter>
 #include <QTreeWidget>
 #include <QWidget>
 
@@ -24,14 +25,17 @@ namespace armarx::skills::gui
         SkillMemoryGUI(QTreeWidget* _skillExecutionTreeWidget,
                        QLayout* _skillExecutionTreeWidgetParentLayout,
                        QGroupBox* _skillGroupBox,
-                       QLayout* _skillGroupBoxParentLayout,
+                       QSplitter* _skillGroupBoxParentLayout,
                        QGroupBox* _skillDetailGroupBox,
-                       QLayout* _skillDetailGroupBoxParentLayout,
+                       QSplitter* _skillDetailGroupBoxParentLayout,
                        QHBoxLayout* _updateWidgetLayout,
 
                        std::shared_ptr<SkillManagerWrapper> _memory);
 
     public slots:
+        /**
+         * @brief Resets all widgets when disconnecting
+         */
         void disconnect();
 
     private:
diff --git a/source/RobotAPI/libraries/skills_gui/gui_utils.h b/source/RobotAPI/libraries/skills_gui/gui_utils.h
index 1b7b810ad31455a5a1957dce3fb0a56eba21bfe5..ea985c405bf075cbad0ec7f81472f5539f6c1b99 100644
--- a/source/RobotAPI/libraries/skills_gui/gui_utils.h
+++ b/source/RobotAPI/libraries/skills_gui/gui_utils.h
@@ -5,11 +5,12 @@
 #include <QSpinBox>
 #include <QWidget>
 
+#include "qsplitter.h"
+
 class QLayout;
 class QSplitter;
 class QTreeWidgetItem;
 
-
 namespace armarx::gui
 {
     /**
@@ -30,10 +31,9 @@ namespace armarx::gui
      */
     void clearItem(QTreeWidgetItem* item);
 
-
-
     template <class WidgetT>
-    void replaceWidget(WidgetT*& old, QWidget* neu, QLayout* parentLayout)
+    void
+    replaceWidget(WidgetT*& old, QWidget* neu, QLayout* parentLayout)
     {
         QLayoutItem* oldItem = parentLayout->replaceWidget(old, neu);
         if (oldItem)
@@ -44,6 +44,20 @@ namespace armarx::gui
         }
     }
 
+    template <class WidgetT>
+    void
+    replaceWidget(WidgetT*& old, QWidget* neu, QSplitter* parentLayout)
+    {
+        int index = parentLayout->indexOf(old);
+        QWidget* oldItem = parentLayout->replaceWidget(index, neu);
+        if (oldItem)
+        {
+            delete oldItem;
+            delete old;
+            old = nullptr;
+        }
+    }
+
     /**
      * @brief Let items in `layout` be children of a splitter.
      *
@@ -71,4 +85,4 @@ namespace armarx::gui
         int numDigits;
         int base;
     };
-}
+} // namespace armarx::gui