diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/CMakeLists.txt b/source/RobotAPI/gui-plugins/SkillManagerPlugin/CMakeLists.txt
index a6d2ff63c1462557b5c55fc9538228dc46509ef1..113ccd8706d8f7c64cbd067f1002a5969b3f9507 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/CMakeLists.txt
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/CMakeLists.txt
@@ -10,12 +10,13 @@ set(SOURCES
     aronTreeWidget/visitors/AronTreeWidgetSetter.cpp
     aronTreeWidget/visitors/AronTreeWidgetModalCreator.cpp
     aronTreeWidget/visitors/AronTreeWidgetContextMenu.cpp
-    aronTreeWidget/Data.cpp
     aronTreeWidget/widgets/CustomWidget.cpp
     aronTreeWidget/widgets/EditMatrixWidget.cpp
     aronTreeWidget/widgets/IntEnumWidget.cpp
-    aronTreeWidget/ListDictHelper.cpp
     aronTreeWidget/widgets/QuaternionWidget.cpp
+    aronTreeWidget/widgets/SkillDescriptionWidget.cpp
+    aronTreeWidget/Data.cpp
+    aronTreeWidget/ListDictHelper.cpp
     aronTreeWidget/AronTreeWidgetItem.cpp
     aronTreeWidget/AronTreeWidgetController.cpp
     aronTreeWidget/modal/text/AronTreeWidgetTextInputModalController.cpp
@@ -34,13 +35,14 @@ set(HEADERS
     aronTreeWidget/visitors/AronTreeWidgetSetter.h
     aronTreeWidget/visitors/AronTreeWidgetModalCreator.h
     aronTreeWidget/visitors/AronTreeWidgetContextMenu.h
-    aronTreeWidget/Data.h
     aronTreeWidget/widgets/NDArrayHelper.h
     aronTreeWidget/widgets/EditMatrixWidget.h
     aronTreeWidget/widgets/CustomWidget.h
     aronTreeWidget/widgets/IntEnumWidget.h
-    aronTreeWidget/ListDictHelper.h
     aronTreeWidget/widgets/QuaternionWidget.h
+    aronTreeWidget/widgets/SkillDescriptionWidget.h
+    aronTreeWidget/Data.h
+    aronTreeWidget/ListDictHelper.h
     aronTreeWidget/AronTreeWidgetItem.h
     aronTreeWidget/AronTreeWidgetController.h
     aronTreeWidget/modal/AronTreeWidgetModal.h
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidget.ui b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidget.ui
index b96d3850e2c7181892e22030c600157963fb41af..83e522b9d6f895b6f492ba63d13529712a3f194d 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidget.ui
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidget.ui
@@ -20,6 +20,9 @@
    <string>SkillManagerMonitorWidget</string>
   </property>
   <layout class="QGridLayout" name="gridLayout_3">
+   <item row="3" column="2">
+    <widget class="QDoubleSpinBox" name="doubleSpinBoxUpdateFreq"/>
+   </item>
    <item row="3" column="0">
     <widget class="QCheckBox" name="checkBoxAutoUpdate">
      <property name="text">
@@ -27,16 +30,6 @@
      </property>
     </widget>
    </item>
-   <item row="3" column="3">
-    <widget class="QPushButton" name="pushButtonRefreshNow">
-     <property name="text">
-      <string>Refresh Now</string>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="2">
-    <widget class="QDoubleSpinBox" name="doubleSpinBoxUpdateFreq"/>
-   </item>
    <item row="3" column="1">
     <widget class="QLabel" name="label">
      <property name="text">
@@ -47,6 +40,13 @@
      </property>
     </widget>
    </item>
+   <item row="3" column="3">
+    <widget class="QPushButton" name="pushButtonRefreshNow">
+     <property name="text">
+      <string>Refresh Now</string>
+     </property>
+    </widget>
+   </item>
    <item row="4" column="0" colspan="4">
     <widget class="QSplitter" name="splitter_2">
      <property name="enabled">
@@ -190,72 +190,137 @@
        <property name="title">
         <string>Skill Details</string>
        </property>
-       <layout class="QGridLayout" name="gridLayout_2">
-        <item row="8" column="3">
-         <widget class="QPushButton" name="pushButtonExecuteSkill">
-          <property name="text">
-           <string>Request Execution</string>
+       <layout class="QVBoxLayout" name="verticalLayout">
+        <item>
+         <widget class="QSplitter" name="splitter_2">
+          <property name="enabled">
+           <bool>true</bool>
           </property>
-         </widget>
-        </item>
-        <item row="0" column="0">
-         <widget class="QPushButton" name="pushButtonPaste">
-          <property name="text">
-           <string>Set args from clipboard</string>
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
           </property>
-         </widget>
-        </item>
-        <item row="0" column="3">
-         <widget class="QPushButton" name="pushButtonReset">
-          <property name="text">
-           <string>Reset args to profile</string>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="0" colspan="4">
-         <widget class="QTreeWidget" name="treeWidgetSkillDetails">
-          <property name="contextMenuPolicy">
-           <enum>Qt::CustomContextMenu</enum>
+          <property name="orientation">
+           <enum>Qt::Vertical</enum>
           </property>
-          <property name="editTriggers">
-           <set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set>
+          <property name="childrenCollapsible">
+           <bool>false</bool>
           </property>
-          <column>
-           <property name="text">
-            <string>Key</string>
+          <widget class="QWidget" name="groupBoxSkillDetailsTop" native="true">
+          <layout class="QVBoxLayout" name="verticalLayout_2">
+           <property name="leftMargin">
+            <number>0</number>
            </property>
-          </column>
-          <column>
-           <property name="text">
-            <string>Value</string>
+           <property name="topMargin">
+            <number>0</number>
            </property>
-          </column>
-          <column>
-           <property name="text">
-            <string>Type</string>
+           <property name="rightMargin">
+            <number>0</number>
            </property>
-          </column>
-          <column>
-           <property name="text">
-            <string>defaultValue (hidden in GUI)</string>
+           <property name="bottomMargin">
+            <number>0</number>
            </property>
-          </column>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QPushButton" name="pushButtonCopy">
-          <property name="text">
-           <string>Copy args to clipboard</string>
-          </property>
+           <item>
+            <layout class="QGridLayout" name="gridLayout_5">
+             <item row="0" column="0">
+              <widget class="QPushButton" name="pushButtonPaste">
+               <property name="text">
+                <string>Set args from clipboard</string>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="3">
+              <widget class="QPushButton" name="pushButtonReset">
+               <property name="text">
+                <string>Reset args to profile</string>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="0" colspan="4">
+              <widget class="QComboBox" name="comboBoxProfiles">
+               <item>
+                <property name="text">
+                 <string>&lt;No Profile selected. Using root&gt;</string>
+                </property>
+               </item>
+              </widget>
+             </item>
+             <item row="0" column="1">
+              <widget class="QPushButton" name="pushButtonCopy">
+               <property name="text">
+                <string>Copy args to clipboard</string>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="2">
+              <widget class="QLabel" name="label_2">
+               <property name="text">
+                <string/>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <widget class="QWidget" name="skillDescription" native="true"/>
+           </item>
+          </layout>
          </widget>
-        </item>
-        <item row="1" column="1" colspan="3">
-         <widget class="QComboBox" name="comboBoxProfiles">
-          <item>
-           <property name="text">
-            <string>&lt;No Profile selected. Using root&gt;</string>
-           </property>
-          </item>
+          <widget class="QWidget" name="groupBoxSkillDetailsBottom" native="true">
+           <layout class="QVBoxLayout" name="verticalLayout_3">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <item>
+             <widget class="QTreeWidget" name="treeWidgetSkillDetails">
+              <property name="contextMenuPolicy">
+               <enum>Qt::CustomContextMenu</enum>
+              </property>
+              <property name="editTriggers">
+               <set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set>
+              </property>
+              <column>
+               <property name="text">
+                <string>Key</string>
+               </property>
+              </column>
+              <column>
+               <property name="text">
+                <string>Value</string>
+               </property>
+              </column>
+              <column>
+               <property name="text">
+                <string>Type</string>
+               </property>
+              </column>
+              <column>
+               <property name="text">
+                <string>defaultValue (hidden in GUI)</string>
+               </property>
+              </column>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushButtonExecuteSkill">
+              <property name="text">
+               <string>Request Execution</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </widget>
          </widget>
         </item>
        </layout>
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
index b35fb56f3f503a4002ba9cccabde957874b25277..8b88718f93dc71bae29b16094d9701c0ae7d896a 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
@@ -24,25 +24,22 @@
 
 #include <string>
 
-#include <RobotAPI/libraries/skills/core/Skill.h>
-
-#include "aronTreeWidget/visitors/AronTreeWidgetConverter.h"
-#include "aronTreeWidget/visitors/AronTreeWidgetCreator.h"
-#include "aronTreeWidget/visitors/AronTreeWidgetModalCreator.h"
-
-// modals
-#include "aronTreeWidget/modal/text/AronTreeWidgetTextInputModalController.h"
-
-// debug
 #include <QClipboard>
 #include <QDoubleSpinBox>
+#include <QGridLayout>
+#include <QTextBrowser>
 
 #include <RobotAPI/libraries/aron/converter/json/NLohmannJSONConverter.h>
+#include <RobotAPI/libraries/skills/core/Skill.h>
 #include <RobotAPI/libraries/skills/core/SkillExecutionRequest.h>
 
 #include "aronTreeWidget/Data.h"
+#include "aronTreeWidget/modal/text/AronTreeWidgetTextInputModalController.h"
+#include "aronTreeWidget/visitors/AronTreeWidgetConverter.h"
+#include "aronTreeWidget/visitors/AronTreeWidgetCreator.h"
+#include "aronTreeWidget/visitors/AronTreeWidgetModalCreator.h"
+#include "aronTreeWidget/widgets/SkillDescriptionWidget.h"
 
-//configSk
 namespace armarx
 {
     QPointer<QDialog>
@@ -112,6 +109,12 @@ namespace armarx
         widget.doubleSpinBoxUpdateFreq->setSingleStep(0.5);
         widget.doubleSpinBoxUpdateFreq->setSuffix(" Hz");
 
+        skillDescriptionWidget = new SkillDescriptionWidget();
+        widget.skillDescription->parentWidget()->layout()->replaceWidget(widget.skillDescription,
+                                                                         skillDescriptionWidget);
+        widget.skillDescription = skillDescriptionWidget;
+
+
         refreshSkillsResultTimer = new QTimer(this);
         updateTimerFrequency();
         refreshSkillsResultTimer->start();
@@ -534,28 +537,7 @@ namespace armarx
         ARMARX_CHECK(skills.at(*selectedSkill.skillId.providerId).count(selectedSkill.skillId) > 0);
         auto skillDesc = skills.at(*selectedSkill.skillId.providerId).at(selectedSkill.skillId);
 
-        {
-            auto it = new QTreeWidgetItem(widget.treeWidgetSkillDetails,
-                                          {QString::fromStdString("Name"),
-                                           QString::fromStdString(skillDesc.skillId.skillName)});
-            widget.treeWidgetSkillDetails->addTopLevelItem(it);
-        }
-
-        {
-            auto it = new QTreeWidgetItem(widget.treeWidgetSkillDetails,
-                                          {QString::fromStdString("Description"),
-                                           QString::fromStdString(skillDesc.description)});
-            widget.treeWidgetSkillDetails->addTopLevelItem(it);
-        }
-
-        {
-            auto it = new QTreeWidgetItem(
-                widget.treeWidgetSkillDetails,
-                {QString::fromStdString("Timeout"),
-                 QString::fromStdString(std::to_string(skillDesc.timeout.toMilliSeconds())) +
-                     " ms"});
-            widget.treeWidgetSkillDetails->addTopLevelItem(it);
-        }
+        skillDescriptionWidget->setSkillDescription(skillDesc);
 
         // select root profile
         widget.comboBoxProfiles->setCurrentIndex(0);
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h
index 1fd2e2f110fe8d34890f8d685c8faa5bc2031b70..9f251bf9e1e5890d9059836fa12017fca9264925 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h
@@ -46,6 +46,8 @@
 
 namespace armarx
 {
+    class SkillDescriptionWidget;
+
     class SkillInfoTreeWidgetItem : public QTreeWidgetItem
     {
     public:
@@ -166,6 +168,7 @@ namespace armarx
 
         // others
         QTimer* refreshSkillsResultTimer;
+        SkillDescriptionWidget* skillDescriptionWidget = nullptr;
 
         // connected flag
         std::atomic_bool connected = false;
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/SkillDescriptionWidget.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/SkillDescriptionWidget.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..60f5908c771cc6bfc5f3e5080445ec8321b613ac
--- /dev/null
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/SkillDescriptionWidget.cpp
@@ -0,0 +1,72 @@
+#include "SkillDescriptionWidget.h"
+
+#include <sstream>
+
+#include <QGridLayout>
+#include <QLabel>
+#include <QTextEdit>
+
+#include <ArmarXGui/libraries/ArmarXGuiBase/widgets/cpp-markdown/markdown.h> // ToDo: Move cpp-markdown to own Axii module.
+
+namespace armarx
+{
+
+    static std::string
+    markdownToHtml(const std::string& markdownText, size_t spacesPerTab = 2)
+    {
+        ::markdown::Document document(spacesPerTab);
+        document.read(markdownText);
+
+        std::stringstream html;
+        document.write(html);
+        return html.str();
+    }
+
+    SkillDescriptionWidget::SkillDescriptionWidget(QWidget* parent) : QWidget{parent}
+    {
+        QGridLayout* layout = new QGridLayout;
+        setLayout(layout);
+
+        layout->setMargin(0);
+
+        int row = 0;
+        int col = 0;
+
+        layout->addWidget(new QLabel("Name:"), row, col++);
+        name = new QLabel;
+        layout->addWidget(name, row, col++);
+
+        // Add some padding.
+        layout->addWidget(new QLabel(), row, col++);
+
+        {
+            QLabel* label = new QLabel("Timeout:");
+            label->setAlignment(Qt::AlignmentFlag::AlignRight);
+            layout->addWidget(label, row, col++);
+        }
+        timeout = new QLabel;
+        timeout->setAlignment(Qt::AlignmentFlag::AlignRight);
+        layout->addWidget(timeout, row, col++);
+
+        ++row;
+        int numCols = col;
+        col = 0;
+
+        description = new QTextEdit;
+        description->setReadOnly(true);
+        layout->addWidget(description, row, col, 1, numCols);
+        ++row;
+    }
+
+    void
+    SkillDescriptionWidget::setSkillDescription(const skills::SkillDescription& desc)
+    {
+        name->setText(QString::fromStdString(desc.skillId.skillName));
+        description->setHtml(QString::fromStdString(markdownToHtml(desc.description)));
+
+        std::stringstream timeoutStr;
+        timeoutStr << desc.timeout;
+        timeout->setText(QString::fromStdString(timeoutStr.str()));
+    }
+
+} // namespace armarx
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/SkillDescriptionWidget.h b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/SkillDescriptionWidget.h
new file mode 100644
index 0000000000000000000000000000000000000000..b58f06d0d6dc65893c2e7f65a4e768ef435d7201
--- /dev/null
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/SkillDescriptionWidget.h
@@ -0,0 +1,27 @@
+#pragma once
+
+#include <QWidget>
+
+#include <RobotAPI/libraries/skills/core/SkillDescription.h>
+
+class QLabel;
+class QTextEdit;
+
+namespace armarx
+{
+
+    class SkillDescriptionWidget : public QWidget
+    {
+    public:
+        SkillDescriptionWidget(QWidget* parent = nullptr);
+
+        void setSkillDescription(const skills::SkillDescription& desc);
+
+    private:
+        QLabel* name = nullptr;
+        QTextEdit* description = nullptr;
+        QLabel* timeout = nullptr;
+    };
+
+
+} // namespace armarx
diff --git a/source/RobotAPI/libraries/aron_component_config/RemoteGuiVisitors.cpp b/source/RobotAPI/libraries/aron_component_config/RemoteGuiVisitors.cpp
index 89499311e289b0d50bdba2f29637e5b7dc2087d6..b76afea2912134e0ac4f8aed12beb7aceb454603 100644
--- a/source/RobotAPI/libraries/aron_component_config/RemoteGuiVisitors.cpp
+++ b/source/RobotAPI/libraries/aron_component_config/RemoteGuiVisitors.cpp
@@ -167,39 +167,62 @@ namespace armarx::aron::component_config
     MakeConfigGuiVisitor::visitListOnEnter(DataInput& o, TypeInput& t)
     {
         in_list_ = true;
-        auto group = RemoteGui::makeSimpleGridLayout(pathToName(o) + "_grid").cols(20);
-        auto data = data::List::DynamicCastAndCheck(o);
         auto type = type::List::DynamicCast(t)->getAcceptedType()->getDescriptor();
-        if (std::find(implementedListDescriptors.begin(), implementedListDescriptors.end(), type) ==
+
+        if (std::find(implementedListDescriptors.begin(), implementedListDescriptors.end(), type) !=
             implementedListDescriptors.end())
         {
-            return;
+            auto group = RemoteGui::makeSimpleGridLayout(pathToName(o) + "_grid").cols(20);
+            auto data = data::List::DynamicCastAndCheck(o);
+
+            for (const auto& el : data->getElements())
+            {
+                group.addChild(RemoteGui::makeLineEdit(pathToName(el))
+                                   .value(factories::VariantHelper::make(type)->to_string(el)),
+                               10);
+                group.addHSpacer(8);
+                group.addChild(RemoteGui::makeButton(pathToName(el) + "_button")
+                                   .label("-")
+                                   .toolTip("Remove List Element"),
+                               2);
+            }
+            group_hierarchy_.back()->addChild(
+                RemoteGui::makeGroupBox(pathToName(o) + "_grp")
+                    .label(o->getPath().getLastElement())
+                    .collapsed(true)
+                    .addChild(group)
+                    .addChild(RemoteGui::makeButton(pathToName(o) + "_add")
+                                  .label("+")
+                                  .toolTip("Add new list entry.")));
         }
-        for (const auto& el : data->getElements())
+        else
         {
-            group.addChild(RemoteGui::makeLineEdit(pathToName(el))
-                               .value(factories::VariantHelper::make(type)->to_string(el)),
-                           10);
-            group.addHSpacer(8);
-            group.addChild(RemoteGui::makeButton(pathToName(el) + "_button")
-                               .label("-")
-                               .toolTip("Remove List Element"),
-                           2);
+            std::string name = pathToName(o);
+            group_hierarchy_.emplace_back(std::make_shared<RemoteGui::detail::GroupBoxBuilder>(
+                RemoteGui::makeGroupBox(name)));
         }
-        group_hierarchy_.back()->addChild(
-            RemoteGui::makeGroupBox(pathToName(o) + "_grp")
-                .label(o->getPath().getLastElement())
-                .collapsed(true)
-                .addChild(group)
-                .addChild(RemoteGui::makeButton(pathToName(o) + "_add")
-                              .label("+")
-                              .toolTip("Add new list entry.")));
     }
 
     void
-    MakeConfigGuiVisitor::visitListOnExit(DataInput& /*unused*/, TypeInput& /*unused*/)
+    MakeConfigGuiVisitor::visitListOnExit(DataInput& /*unused*/, TypeInput& t)
     {
         in_list_ = false;
+
+        auto type = type::List::DynamicCast(t)->getAcceptedType()->getDescriptor();
+
+        if (std::find(implementedListDescriptors.begin(), implementedListDescriptors.end(), type) !=
+            implementedListDescriptors.end())
+        {
+        }
+        else
+        {
+            auto builder = *group_hierarchy_.back();
+            group_hierarchy_.pop_back();
+            if (not group_hierarchy_.empty())
+            {
+                group_hierarchy_.back()->addChild(builder);
+            }
+        }
     }
 
     void
@@ -232,7 +255,7 @@ namespace armarx::aron::component_config
         group.addChild(RemoteGui::makeLabel(name + "_label").value(q->getPath().getLastElement()));
         group.addHSpacer();
 
-        if (cols == 4 && rows == 4)
+        if (cols == 4 and rows == 4)
         {
             // Poses
             const auto& matrix = aron::data::converter::AronEigenConverter::ConvertToMatrix4f(data);
@@ -488,36 +511,55 @@ namespace armarx::aron::component_config
     GetValueFromMapVisitor::visitListOnEnter(DataInput& o, TypeInput& t)
     {
         in_list_ = true;
-        auto data = data::List::DynamicCastAndCheck(o);
+
         auto type = type::List::DynamicCast(t)->getAcceptedType()->getDescriptor();
-        if (std::find(implementedListDescriptors.begin(), implementedListDescriptors.end(), type) ==
+
+        if (std::find(implementedListDescriptors.begin(), implementedListDescriptors.end(), type) !=
             implementedListDescriptors.end())
         {
-            return;
-        }
-        const auto& elements = data->getElements();
-        for (const auto& [idx, el] : armarx::MakeIndexedContainer(elements))
-        {
-            if (proxy_->getButtonClicked(pathToName(el) + "_button"))
+            auto data = data::List::DynamicCastAndCheck(o);
+
+            const auto& elements = data->getElements();
+            for (const auto& [idx, el] : armarx::MakeIndexedContainer(elements))
             {
-                data->removeElement(idx);
+                if (proxy_->getButtonClicked(pathToName(el) + "_button"))
+                {
+                    data->removeElement(idx);
+                    tab_rebuild_required_ = true;
+                }
+                auto gui_value = proxy_->getValue<std::string>(pathToName(el)).get();
+                factories::VariantHelper::make(type)->set_value_from_string(el, gui_value);
+            }
+            if (proxy_->getButtonClicked(pathToName(o) + "_add"))
+            {
+                data->addElement(factories::VariantHelper::make(type)->from_string(
+                    "", o->getPath().withIndex(data->childrenSize())));
                 tab_rebuild_required_ = true;
             }
-            auto gui_value = proxy_->getValue<std::string>(pathToName(el)).get();
-            factories::VariantHelper::make(type)->set_value_from_string(el, gui_value);
         }
-        if (proxy_->getButtonClicked(pathToName(o) + "_add"))
+        else
         {
-            data->addElement(factories::VariantHelper::make(type)->from_string(
-                "", o->getPath().withIndex(data->childrenSize())));
-            tab_rebuild_required_ = true;
+            // TODO? Adapt to additional GroupBoxBuilder added by
+            // MakeConfigGuiVisitor::visitListOnEnter in this case?
         }
     }
 
     void
-    GetValueFromMapVisitor::visitListOnExit(DataInput&, TypeInput&)
+    GetValueFromMapVisitor::visitListOnExit(DataInput&, TypeInput& t)
     {
         in_list_ = false;
+
+        auto type = type::List::DynamicCast(t)->getAcceptedType()->getDescriptor();
+
+        if (std::find(implementedListDescriptors.begin(), implementedListDescriptors.end(), type) !=
+            implementedListDescriptors.end())
+        {
+        }
+        else
+        {
+            // TODO? Adapt to additional GroupBoxBuilder added by
+            // MakeConfigGuiVisitor::visitListOnEnter in this case?
+        }
     }
 
     bool