diff --git a/source/RobotAPI/components/skills/SkillProviderExample/Timeout.cpp b/source/RobotAPI/components/skills/SkillProviderExample/Timeout.cpp
index 31dc03ae05caf0e2be256487e3a6a4294243e9d0..ddfc284c36e3da15ca34fdb657a9eeb6cc885f33 100644
--- a/source/RobotAPI/components/skills/SkillProviderExample/Timeout.cpp
+++ b/source/RobotAPI/components/skills/SkillProviderExample/Timeout.cpp
@@ -14,7 +14,7 @@ namespace armarx::skills::provider
     {
         return SkillDescription{.skillId = SkillID{.skillName = "Timeout"},
                                 .description = "This fails with timeout reached",
-                                .timeout = armarx::core::time::Duration::MilliSeconds(2000)};
+                                .timeout = armarx::core::time::Duration::Seconds(10)};
     }
 
     PeriodicSkill::StepResult
diff --git a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/AronTreeWidgetController.cpp b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/AronTreeWidgetController.cpp
index 79d606639c320ffeba73918967d9a832de446e68..4cdccadf87864a3ab4147b9cb867f7fac2d9ae11 100644
--- a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/AronTreeWidgetController.cpp
+++ b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/AronTreeWidgetController.cpp
@@ -136,6 +136,7 @@ namespace armarx::skills::gui
     void
     AronTreeWidgetController::onTreeWidgetItemChanged(QTreeWidgetItem* item, int column)
     {
+        ARMARX_INFO << "Enter onTreeWidgetItemChanged";
         tree->blockSignals(true);
 
         auto* aronElem = AronTreeWidgetItem::DynamicCast(item);
@@ -143,21 +144,26 @@ namespace armarx::skills::gui
         {
             aronElem->onUserChange(column);
         }
+
+        ARMARX_INFO << "After onUserChange";
         // start conversion for entire tree -- this also sets the highlighting
         if (parent->childCount() == 1)
         {
             auto* aronTreeRoot = AronTreeWidgetItem::DynamicCast(parent->child(0));
-            aronTreeRoot->resetError();
             if (aronTreeRoot)
             {
+                ARMARX_INFO << "Looking at aronTreeRoot";
+                aronTreeRoot->resetError();
                 AronTreeWidgetConverterVisitor v(parent, 0);
                 aron::type::visit(v, type);
+                ARMARX_INFO << "After visiting";
                 aronTreeRoot->setValueErrorState(v.hasDirectError(), v.onlyChildFailedConversion());
             }
         }
         // else perhaps the GUI was stopped or died.
 
         tree->blockSignals(false);
+        ARMARX_INFO << "Exit onTreeWidgetItemChanged";
     }
 
 } // namespace armarx::skills::gui
diff --git a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/AronTreeWidgetItem.cpp b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/AronTreeWidgetItem.cpp
index d76cee191fda8cb927548a795b53291875ae14e6..6f8b2f63e4f9daf3406c8f3d92420634aecd3606 100644
--- a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/AronTreeWidgetItem.cpp
+++ b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/AronTreeWidgetItem.cpp
@@ -149,6 +149,7 @@ namespace armarx::skills::gui
     void
     AronTreeWidgetItem::onUserChange(int changedColumn)
     {
+        ARMARX_INFO << "Enter onUserChange";
         QTreeWidgetItem* qParent = QTreeWidgetItem::parent();
         ARMARX_CHECK(qParent);
         AronTreeWidgetItem* aronParent = DynamicCast(qParent);
@@ -172,6 +173,7 @@ namespace armarx::skills::gui
                 preventIllegalKeyChange();
             }
         }
+        ARMARX_INFO << "Exit onUserChange";
     }
 
     void
diff --git a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/visitors/AronTreeWidgetConverter.cpp b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/visitors/AronTreeWidgetConverter.cpp
index 832258ea2c1083742ae9c0f13192e9f6903169ef..9ab53296e103fe40246f2b1ef67aca3d96a3d8d8 100644
--- a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/visitors/AronTreeWidgetConverter.cpp
+++ b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/visitors/AronTreeWidgetConverter.cpp
@@ -63,6 +63,7 @@ namespace armarx::skills::gui
     AronTreeWidgetConverterVisitor::handleErrors(AronTreeWidgetConverterVisitor childV,
                                                  bool ownFault)
     {
+        ARMARX_INFO << "Enter HandleErrors1";
         ARMARX_TRACE;
         isDirectError |= ownFault;
         hasTransitiveError |= childV.isDirectError || childV.hasTransitiveError;
@@ -70,21 +71,25 @@ namespace armarx::skills::gui
         auto* aronItem = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
         ARMARX_CHECK(aronItem);
         aronItem->setValueErrorState(isDirectError, hasTransitiveError);
+        ARMARX_INFO << "Exit HandleErrors1";
     }
 
     void
     AronTreeWidgetConverterVisitor::handleErrors(bool ownFault)
     {
+        ARMARX_INFO << "Enter HandleErrors2";
         ARMARX_TRACE;
         isDirectError = ownFault;
         auto* aronItem = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
         ARMARX_CHECK(aronItem);
         aronItem->setValueErrorState(isDirectError, false);
+        ARMARX_INFO << "Exit HandleErrors2";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::ObjectPtr& i)
     {
+        ARMARX_INFO << "Enter Object Converter";
         ARMARX_TRACE;
         auto createdAronDict = std::make_shared<aron::data::Dict>(i->getPath());
         createdAron = createdAronDict;
@@ -113,11 +118,13 @@ namespace armarx::skills::gui
                 createdAronDict->addElement(key, v.createdAron);
             }
         }
+        ARMARX_INFO << "Exit Object Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::DictPtr& i)
     {
+        ARMARX_INFO << "Enter Dict Converter";
         ARMARX_TRACE;
         auto createdAronDict = std::make_shared<aron::data::Dict>(i->getPath());
         createdAron = createdAronDict;
@@ -146,11 +153,13 @@ namespace armarx::skills::gui
                 createdAronDict->addElement(key, v.createdAron);
             }
         }
+        ARMARX_INFO << "Exit Dict Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::ListPtr& i)
     {
+        ARMARX_INFO << "Enter List Converter";
         ARMARX_TRACE;
         auto createdAronList = std::make_shared<aron::data::List>(i->getPath());
         createdAron = createdAronList;
@@ -179,11 +188,13 @@ namespace armarx::skills::gui
                 createdAronList->addElement(convVisitor.createdAron);
             }
         }
+        ARMARX_INFO << "Exit List Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::PairPtr& i)
     {
+        ARMARX_INFO << "Enter Pair Converter";
         ARMARX_TRACE;
         auto createdAronPair = std::make_shared<aron::data::List>(i->getPath());
         createdAron = createdAronPair;
@@ -208,11 +219,13 @@ namespace armarx::skills::gui
                 createdAronPair->addElement(convVisitor.createdAron);
             }
         }
+        ARMARX_INFO << "Exit Pair Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::TuplePtr& i)
     {
+        ARMARX_INFO << "Enter Tuple Converter";
         ARMARX_TRACE;
         auto createdAronList = std::make_shared<aron::data::List>(i->getPath());
         createdAron = createdAronList;
@@ -240,6 +253,7 @@ namespace armarx::skills::gui
                 createdAronList->addElement(v.createdAron);
             }
         }
+        ARMARX_INFO << "Exit Tuple Converter";
     }
 
     void
@@ -252,6 +266,7 @@ namespace armarx::skills::gui
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::MatrixPtr& i)
     {
+        ARMARX_INFO << "Enter Matrix Converter";
         ARMARX_TRACE;
         auto createdMatrix = std::make_shared<aron::data::NDArray>(i->getPath());
         int dataSize = 0;
@@ -276,6 +291,8 @@ namespace armarx::skills::gui
                 break;
         };
 
+        ARMARX_INFO << "Matrix: 1";
+
         // UGLY HACK: FIX ME!!!
         switch (i->getElementType())
         {
@@ -308,6 +325,8 @@ namespace armarx::skills::gui
                 break;
         };
 
+        ARMARX_INFO << "Matrix: 2";
+
         createdMatrix->setShape({i->getRows(), i->getCols(), dataSize});
         int totalByteSize = i->getRows() * i->getCols() * dataSize;
         createdAron = createdMatrix;
@@ -323,17 +342,23 @@ namespace armarx::skills::gui
             }
         }
 
+        ARMARX_INFO << "Matrix: 3";
 
         auto* rootWidget = el->treeWidget();
         ARMARX_CHECK(rootWidget);
         auto* widget = rootWidget->itemWidget(el, 1);
+        ARMARX_CHECK(rootWidget);
         auto* matrixWidget = EditMatrixWidget::DynamicCastAndCheck(widget);
+        ARMARX_CHECK(matrixWidget);
 
         handleErrors(matrixWidget->hasParseErrors());
         if (matrixWidget->hasParseErrors())
         {
             return;
         }
+
+        ARMARX_INFO << "Matrix: 4";
+
         // write to aron data
         std::vector<unsigned char> elems;
         elems.reserve(totalByteSize);
@@ -349,11 +374,13 @@ namespace armarx::skills::gui
             }
         }
         createdMatrix->setData(totalByteSize, elems.data());
+        ARMARX_INFO << "Exit Matrix Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::QuaternionPtr& i)
     {
+        ARMARX_INFO << "Enter Quat Converter";
         ARMARX_TRACE;
         auto createdQuat = std::make_shared<aron::data::NDArray>(i->getPath());
         createdAron = createdQuat;
@@ -390,6 +417,7 @@ namespace armarx::skills::gui
                 << "serialized quaternions did not return byte sequence of correct length!";
         }
         createdQuat->setData(serialized.size(), serialized.data());
+        ARMARX_INFO << "Exit Quat Converter";
     }
 
     void
@@ -409,6 +437,7 @@ namespace armarx::skills::gui
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::IntEnumPtr& i)
     {
+        ARMARX_INFO << "Enter IntEnum Converter";
         ARMARX_TRACE;
         QTreeWidgetItem* el = parentItem->child(index);
 
@@ -433,11 +462,13 @@ namespace armarx::skills::gui
         std::tie(success, createdAron) = intEnumWidget->parseToAron();
 
         handleErrors(!success);
+        ARMARX_INFO << "Exit IntEnum Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::IntPtr& i)
     {
+        ARMARX_INFO << "Enter Int Converter";
         ARMARX_TRACE;
         auto createdAronInt = std::make_shared<aron::data::Int>(i->getPath());
         createdAron = createdAronInt;
@@ -472,11 +503,13 @@ namespace armarx::skills::gui
             return;
         }
         handleErrors(false);
+        ARMARX_INFO << "Exit Int Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::LongPtr& i)
     {
+        ARMARX_INFO << "Enter Long Converter";
         ARMARX_TRACE;
         auto createdAronLong = std::make_shared<aron::data::Long>(i->getPath());
         createdAron = createdAronLong;
@@ -510,11 +543,13 @@ namespace armarx::skills::gui
             return;
         }
         handleErrors(false);
+        ARMARX_INFO << "Exit Long Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::FloatPtr& i)
     {
+        ARMARX_INFO << "Enter Float Converter";
         ARMARX_TRACE;
         auto createdAronFloat = std::make_shared<aron::data::Float>(i->getPath());
         createdAron = createdAronFloat;
@@ -547,11 +582,13 @@ namespace armarx::skills::gui
             return;
         }
         handleErrors(false);
+        ARMARX_INFO << "Exit Float Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::DoublePtr& i)
     {
+        ARMARX_INFO << "Enter Double Converter";
         ARMARX_TRACE;
         auto createdAronDouble = std::make_shared<aron::data::Double>(i->getPath());
         createdAron = createdAronDouble;
@@ -584,11 +621,13 @@ namespace armarx::skills::gui
             return;
         }
         handleErrors(false);
+        ARMARX_INFO << "Exit Double Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::BoolPtr& i)
     {
+        ARMARX_INFO << "Enter Bool Converter";
         ARMARX_TRACE;
         auto createdAronBool = std::make_shared<aron::data::Bool>(i->getPath());
         createdAron = createdAronBool;
@@ -621,16 +660,28 @@ namespace armarx::skills::gui
             return;
         }
         handleErrors(false);
+        ARMARX_INFO << "Exit Bool Converter";
     }
 
     void
     AronTreeWidgetConverterVisitor::visitAronVariant(const aron::type::StringPtr& i)
     {
+        ARMARX_INFO << "Enter String Converter";
         ARMARX_TRACE;
         auto createdAronString = std::make_shared<aron::data::String>(i->getPath());
         createdAron = createdAronString;
         QTreeWidgetItem* el = parentItem->child(index);
 
+        if (el == nullptr)
+        {
+            return;
+        }
+
+        ARMARX_INFO << "el = " << el;
+        ARMARX_INFO << "index = " << index;
+
+        ARMARX_INFO << "String: 1";
+
         if (i->getMaybe() != armarx::aron::type::Maybe::NONE)
         {
             // its a maybetype. We have to check the state
@@ -641,8 +692,12 @@ namespace armarx::skills::gui
             }
         }
 
+        ARMARX_INFO << "String: 2";
+
         std::string str = el->text(1).toStdString();
+        ARMARX_INFO << "createdAronString = " << createdAronString;
         createdAronString->setValue(str);
+        ARMARX_INFO << "Exit String Converter";
     }
 
     void
diff --git a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/visitors/AronTreeWidgetSetter.cpp b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/visitors/AronTreeWidgetSetter.cpp
index 4951555344ee891df2919466a43453cfbfb6d278..26378f0ca9e24e3285233706aed7256a7d3ff390 100644
--- a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/visitors/AronTreeWidgetSetter.cpp
+++ b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/visitors/AronTreeWidgetSetter.cpp
@@ -35,11 +35,14 @@ template <typename T>
 std::string
 usString(T number, size_t precision = 3)
 {
+    ARMARX_INFO << "Enter usString";
     std::stringstream ss;
     const char* locale = "C";
     ss.imbue(std::locale(locale));
 
+    ARMARX_INFO << "Building StringStream";
     ss << std::fixed << std::setprecision(precision) << number;
+    ARMARX_INFO << "Exit usString";
     return ss.str();
 }
 
@@ -102,6 +105,7 @@ namespace armarx::skills::gui
     void
     AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::DictPtr& i)
     {
+        ARMARX_INFO << "Enter DictPtr Setter Visitor";
         // either it is the root or it has a name
         if (i->getPath().size() == 0 ||
             checkTreeWidgetItemForSimilarName(i->getPath().getLastElement()))
@@ -126,17 +130,24 @@ namespace armarx::skills::gui
                 el->setCheckState(1, Qt::CheckState::Checked);
             }
         }
+        ARMARX_INFO << "Exit DictPtr Setter Visitor";
     }
 
     void
     AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::ListPtr& i)
     {
+        ARMARX_INFO << "Enter ListPtr Setter Visitor";
         if (checkTreeWidgetItemForSimilarName(i->getPath().getLastElement()))
         {
+            ARMARX_INFO << "Marker 0";
             AronTreeWidgetItem* el = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
+            ARMARX_INFO << "el: " << el;
             auto* aronTreeWidget = AronTreeWidgetItem::DynamicCastAndCheck(el);
+            ARMARX_INFO << "aronTreeWidget: " << aronTreeWidget;
             adjustNumberOfChildren(aronTreeWidget, i->childrenSize());
 
+            ARMARX_INFO << "Marker 1";
+
             unsigned int x = 0;
             for (const auto& value : i->getElements())
             {
@@ -148,6 +159,7 @@ namespace armarx::skills::gui
 
                 ++x;
             }
+            ARMARX_INFO << "Marker 2";
             // This displays the number of children also when the list is collapsed
             QString numElemsText = misc::generateNumElementsText(i->getElements().size());
             aronTreeWidget->setText(1, numElemsText);
@@ -161,6 +173,7 @@ namespace armarx::skills::gui
                 el->setCheckState(1, Qt::CheckState::Checked);
             }
         }
+        ARMARX_INFO << "Exit ListPtr Setter Visitor";
     }
 
     void
@@ -168,6 +181,7 @@ namespace armarx::skills::gui
                 const std::shared_ptr<armarx::aron::type::Matrix>& matrixType,
                 const aron::data::NDArrayPtr& arr)
     {
+        ARMARX_INFO << "Enter Matrix Setter Visitor";
         auto elemType = matrixType->getElementType();
         auto* rawData = arr->getData();
         // string can convert any item
@@ -250,6 +264,7 @@ namespace armarx::skills::gui
                     std::shared_ptr<armarx::aron::type::Quaternion>& quatType,
                     const aron::data::NDArrayPtr& arr)
     {
+        ARMARX_INFO << "Enter Quat Setter Visitor";
         auto elemType = quatType->getElementType();
         auto rawData = arr->getData();
         auto shape = arr->getShape();
@@ -280,11 +295,13 @@ namespace armarx::skills::gui
         {
             quatWidget->setText((QuaternionWidget::QuaternionComponents)i, toString(i));
         }
+        ARMARX_INFO << "Exit Quat Setter Visitor";
     }
 
     void
     AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::NDArrayPtr& arr)
     {
+        ARMARX_INFO << "Enter NDArray Setter Visitor";
         // Matrices are handled as NDArray. Raw ndarrays cannot be created currently
         auto* el = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
         ARMARX_CHECK(el);
@@ -315,11 +332,13 @@ namespace armarx::skills::gui
         {
             el->setCheckState(1, Qt::CheckState::Checked);
         }
+        ARMARX_INFO << "Exit NDArray Setter Visitor";
     }
 
     void
     AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::IntPtr& i)
     {
+        ARMARX_INFO << "Enter IntPtr Setter Visitor";
         if (checkTreeWidgetItemForSimilarName(i->getPath().getLastElement()))
         {
             AronTreeWidgetItem* el = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
@@ -341,11 +360,13 @@ namespace armarx::skills::gui
                 el->setCheckState(1, Qt::CheckState::Checked);
             }
         }
+        ARMARX_INFO << "Exit IntPtr Setter Visitor";
     }
 
     void
     AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::LongPtr& i)
     {
+        ARMARX_INFO << "Enter LongPtr Setter Visitor";
         if (checkTreeWidgetItemForSimilarName(i->getPath().getLastElement()))
         {
             AronTreeWidgetItem* el = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
@@ -356,26 +377,40 @@ namespace armarx::skills::gui
                 el->setCheckState(1, Qt::CheckState::Checked);
             }
         }
+        ARMARX_INFO << "Exit LongPtr Setter Visitor";
     }
 
     void
     AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::FloatPtr& i)
     {
+        ARMARX_INFO << "Enter FloatPtr Setter Visitor";
+        ARMARX_INFO << "path: " << i->getPath().toString();
+        ARMARX_INFO << "value: " << i->getValue();
+        ARMARX_INFO << "test: " << usString<float>(i->getValue());
+
         if (checkTreeWidgetItemForSimilarName(i->getPath().getLastElement()))
         {
             AronTreeWidgetItem* el = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
-            el->setText(1, QString::fromStdString(usString<float>(i->getValue())));
-
+            ARMARX_INFO << "el = " << el;
+            std::string repr = usString<float>(i->getValue());
+            ARMARX_INFO << "repr = " << repr;
+            QString qstr = QString::fromStdString(repr);
+            ARMARX_INFO << "qstr = " << qstr;
+            el->setText(1, qstr);
+            ARMARX_INFO << "After SetText";
             if (el->aronType && el->aronType->getMaybe() != armarx::aron::type::Maybe::NONE)
             {
+                ARMARX_INFO << "What?";
                 el->setCheckState(1, Qt::CheckState::Checked);
             }
         }
+        ARMARX_INFO << "Exit FloatPtr Setter Visitor";
     }
 
     void
     AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::DoublePtr& i)
     {
+        ARMARX_INFO << "Enter DoublePtr Setter Visitor";
         if (checkTreeWidgetItemForSimilarName(i->getPath().getLastElement()))
         {
             AronTreeWidgetItem* el = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
@@ -386,11 +421,13 @@ namespace armarx::skills::gui
                 el->setCheckState(1, Qt::CheckState::Checked);
             }
         }
+        ARMARX_INFO << "Exit DoublePtr Setter Visitor";
     }
 
     void
     AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::BoolPtr& i)
     {
+        ARMARX_INFO << "Enter BoolPtr Setter Visitor";
         if (checkTreeWidgetItemForSimilarName(i->getPath().getLastElement()))
         {
             AronTreeWidgetItem* el = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
@@ -401,11 +438,13 @@ namespace armarx::skills::gui
                 el->setCheckState(1, Qt::CheckState::Checked);
             }
         }
+        ARMARX_INFO << "Exit BoolPtr Setter Visitor";
     }
 
     void
     AronTreeWidgetSetterVisitor::visitAronVariant(const aron::data::StringPtr& i)
     {
+        ARMARX_INFO << "Enter StringPtr Setter Visitor";
         if (checkTreeWidgetItemForSimilarName(i->getPath().getLastElement()))
         {
             AronTreeWidgetItem* el = AronTreeWidgetItem::DynamicCast(parentItem->child(index));
@@ -416,6 +455,7 @@ namespace armarx::skills::gui
                 el->setCheckState(1, Qt::CheckState::Checked);
             }
         }
+        ARMARX_INFO << "Exit StringPtr Setter Visitor";
     }
 
     void