diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
index f48165ab95c12f4f16dfd68c35212893e24373a6..846c34ae54888288d0f635b03e47da5b2399d8e7 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
@@ -187,8 +187,8 @@ namespace armarx
         widget.treeWidgetSkills->clear();
         widget.treeWidgetSkillDetails->clear();
         skillsArgumentsTreeWidgetItem = nullptr;
-        selectedSkill.skillId.providerId->providerName = skills::SkillID::UNKNOWN;
-        selectedSkill.skillId.skillName = skills::SkillID::UNKNOWN;
+        selectedSkill.skillId.providerId->providerName = "";
+        selectedSkill.skillId.skillName = "";
     }
 
     void
@@ -233,7 +233,7 @@ namespace armarx
                 auto skillId = skills::SkillID::FromIce(sid);
                 auto providerId = skills::ProviderID(skillId);
 
-                ARMARX_CHECK(skillId.fullySpecified());
+                ARMARX_CHECK(skillId.isFullySpecified());
 
                 auto& providedSkillsMap = skills[providerId]; // create new if not existent
                 providedSkillsMap.insert({skillId, description});
@@ -432,7 +432,7 @@ namespace armarx
     void
     SkillManagerMonitorWidgetController::executeSkill()
     {
-        if (not selectedSkill.skillId.fullySpecified())
+        if (not selectedSkill.skillId.isFullySpecified())
         {
             return;
         }
@@ -456,7 +456,7 @@ namespace armarx
                                               ")",
                                           data);
 
-        ARMARX_CHECK(selectedSkill.skillId.fullySpecified()); // sanity check
+        ARMARX_CHECK(selectedSkill.skillId.isFullySpecified()); // sanity check
         ARMARX_IMPORTANT << "Executing skill from GUI: " << selectedSkill.skillId << ".";
         // Note that we execute the skill in a seperate thread so that the GUI thread does not freeze.
         memory->begin_executeSkill(req.toManagerIce());
@@ -466,7 +466,7 @@ namespace armarx
     SkillManagerMonitorWidgetController::stopSkill()
     {
         //        std::scoped_lock l(updateMutex);
-        //        if (selectedSkill.skillId.fullySpecified())
+        //        if (selectedSkill.skillId.isFullySpecified())
         //        {
         //            return;
         //        }
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h
index 869e7921366da0290f741037f4aab9cf3ef3a08f..665982d64def770a002ecb73d912d2e7df39550e 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h
@@ -154,7 +154,7 @@ namespace armarx
             skills::SkillID skillId;
 
             // make default constructable
-            SelectedSkill() : skillId({skills::SkillID::UNKNOWN}, skills::SkillID::UNKNOWN)
+            SelectedSkill() : skillId({""}, "")
             {
             }
         } selectedSkill;
diff --git a/source/RobotAPI/interface/skills/SkillManagerInterface.ice b/source/RobotAPI/interface/skills/SkillManagerInterface.ice
index b2c3b5deba9aa8239023d4559b6d20405e5b0889..b4bb67e6c910aaab5f56340dee310c4d0f55dc4d 100644
--- a/source/RobotAPI/interface/skills/SkillManagerInterface.ice
+++ b/source/RobotAPI/interface/skills/SkillManagerInterface.ice
@@ -92,6 +92,7 @@ module armarx
 
             module dti
             {
+                /// @todo Rename in the same manner as provider interface.
                 interface SkillManagerInterface extends
                     callback::dti::SkillProviderCallbackInterface
                 {
diff --git a/source/RobotAPI/interface/skills/SkillProviderInterface.ice b/source/RobotAPI/interface/skills/SkillProviderInterface.ice
index 80a8a97fbdb9f6eff8f19cfaf1384338748c6232..5a256544c075e41deaccc0b0732112178548eccd 100644
--- a/source/RobotAPI/interface/skills/SkillProviderInterface.ice
+++ b/source/RobotAPI/interface/skills/SkillProviderInterface.ice
@@ -58,9 +58,6 @@ module armarx
         {
             module dto
             {
-
-                sequence<string> StringList;
-
                 // The status enum of a skill
                 module Execution
                 {
@@ -123,8 +120,8 @@ module armarx
                     SkillID skillId;
                     string description;
                     armarx::core::time::dto::Duration timeout;
-                    aron::type::dto::AronObject acceptedType;
-                    aron::type::dto::AronObject returnType;
+                    aron::type::dto::AronObject acceptedType; /// @todo Rename to "parametersType"
+                    aron::type::dto::AronObject returnType; /// @todo Rename to "resultType"
                     aron::data::dto::Dict rootProfileDefaults;
                 };
 
@@ -135,7 +132,7 @@ module armarx
                 {
                     SkillID skillId;
                     string executorName;
-                    aron::data::dto::Dict params;
+                    aron::data::dto::Dict params; /// @todo Rename to "parameters"
                     callback::dti::SkillProviderCallbackInterface* callbackInterface;
                 };
 
@@ -152,10 +149,13 @@ module armarx
                 struct SkillStatusUpdate
                 {
                     SkillExecutionID executionId;
-                    aron::data::dto::Dict usedParams;
-                    callback::dti::SkillProviderCallbackInterface* usedCallbackInterface;
+                    aron::data::dto::Dict usedParams; /// @todo Rename to "parameters"
+                    callback::dti::SkillProviderCallbackInterface*
+                        usedCallbackInterface; /// @todo Rename to "callbackInterface"
                     core::dto::Execution::Status status;
-                    aron::data::dto::Dict data;
+                    aron::data::dto::Dict data; /// @todo Rename to "result"
+                    /// @todo maybe add in future:
+                    // aron::data::dto::Dict feedback;
                 };
 
                 dictionary<SkillExecutionID, SkillStatusUpdate> SkillStatusUpdateMap;
@@ -183,9 +183,11 @@ module armarx
                     dto::SkillExecutionID
                     executeSkillAsync(dto::SkillExecutionRequest executionInfo);
 
+                    /// @todo: Rename to "updateSkillParameters".
                     void addSkillParameters(dto::SkillExecutionID executionId,
                                             aron::data::dto::Dict params); // add params to a skill
 
+                    /// @todo Rename to "abortSkillAsync" and add "abortSkill as blocking variant.
                     // try to kill a skill as soon as possible. When the skill is stopped depends on the implementation.
                     void abortSkill(dto::SkillExecutionID skill);
                 };
diff --git a/source/RobotAPI/libraries/armem_skills/aron_conversions.cpp b/source/RobotAPI/libraries/armem_skills/aron_conversions.cpp
index 4bb6f1f5128de5c8afd422114e92530ddba8bce2..44021a2acbb863d51e7f98d1fb0522c8c031b47f 100644
--- a/source/RobotAPI/libraries/armem_skills/aron_conversions.cpp
+++ b/source/RobotAPI/libraries/armem_skills/aron_conversions.cpp
@@ -133,7 +133,7 @@ namespace armarx::armem
     fromAron(const armarx::skills::arondto::SkillID& dto, skills::SkillID& bo)
     {
         bo.skillName = dto.skillName;
-        bo.providerId = skills::ProviderID(skills::SkillID::UNKNOWN);
+        bo.providerId = skills::ProviderID("");
         fromAron(dto.providerId, *bo.providerId);
     }
 
diff --git a/source/RobotAPI/libraries/skills/core/SkillID.cpp b/source/RobotAPI/libraries/skills/core/SkillID.cpp
index 9bb0b36a881642fbbdb7c21841dc5597e050fe7b..3213183d0a9e267979574df0d50ebb99a2a89a97 100644
--- a/source/RobotAPI/libraries/skills/core/SkillID.cpp
+++ b/source/RobotAPI/libraries/skills/core/SkillID.cpp
@@ -12,7 +12,7 @@ namespace armarx
         SkillID::SkillID(const ProviderID& providerId, const std::string& skillName) :
             providerId(providerId), skillName(skillName)
         {
-            if (simox::alg::contains(providerId.providerName, NAME_SEPARATOR) ||
+            if (simox::alg::contains(providerId.providerName, NAME_SEPARATOR) or
                 simox::alg::contains(skillName, NAME_SEPARATOR))
             {
                 throw error::SkillException(
@@ -20,15 +20,6 @@ namespace armarx
                     std::string("A skill provider or a skill contains the blacklisted token '") +
                         NAME_SEPARATOR + "'.");
             }
-
-            if (simox::alg::contains(providerId.providerName, PREFIX_SEPARATOR) ||
-                simox::alg::contains(skillName, PREFIX_SEPARATOR))
-            {
-                throw error::SkillException(
-                    __PRETTY_FUNCTION__,
-                    std::string("A skill provider or a skill contains the blacklisted token '") +
-                        PREFIX_SEPARATOR + "'.");
-            }
         }
 
         bool
@@ -69,7 +60,7 @@ namespace armarx
         manager::dto::SkillID
         SkillID::toManagerIce() const
         {
-            ARMARX_CHECK(fullySpecified());
+            ARMARX_CHECK(isFullySpecified());
             return {providerId->toManagerIce(), skillName};
         }
 
@@ -80,15 +71,13 @@ namespace armarx
         }
 
         std::string
-        SkillID::toString(const std::string& prefix) const
+        SkillID::toString() const
         {
             if (providerId.has_value())
             {
-                return (prefix.empty() ? std::string("") : (prefix + PREFIX_SEPARATOR)) +
-                       providerId->providerName + NAME_SEPARATOR + skillName;
+                return providerId->providerName + NAME_SEPARATOR + skillName;
             }
-            return (prefix.empty() ? std::string("") : (prefix + PREFIX_SEPARATOR)) + UNKNOWN +
-                   NAME_SEPARATOR + skillName;
+            return NAME_SEPARATOR + skillName;
         }
     } // namespace skills
 
diff --git a/source/RobotAPI/libraries/skills/core/SkillID.h b/source/RobotAPI/libraries/skills/core/SkillID.h
index 39561595db477c926f809bc5a51644510f8da484..38af6a6d277ebf8e04400af7f9d0a15869c55b86 100644
--- a/source/RobotAPI/libraries/skills/core/SkillID.h
+++ b/source/RobotAPI/libraries/skills/core/SkillID.h
@@ -17,12 +17,7 @@ namespace armarx
         class SkillID
         {
         public:
-            static const constexpr char* PREFIX_SEPARATOR = "->";
             static const constexpr char* NAME_SEPARATOR = "/";
-            static const constexpr char* UNKNOWN = "UNKNOWN";
-
-            std::optional<ProviderID> providerId;
-            std::string skillName;
 
             SkillID() = delete;
             SkillID(const std::string& skillName);
@@ -33,25 +28,25 @@ namespace armarx
             bool operator<(const SkillID& other) const;
 
             bool
-            fullySpecified() const
+            isFullySpecified() const
             {
-                return skillSpecified() && providerSpecified();
+                return isSkillSpecified() and isProviderSpecified();
             }
 
             bool
-            skillSpecified() const
+            isSkillSpecified() const
             {
-                return skillName != UNKNOWN;
+                return not skillName.empty();
             }
 
             bool
-            providerSpecified() const
+            isProviderSpecified() const
             {
                 if (not providerId.has_value())
                 {
                     return false;
                 }
-                return providerId->providerName != UNKNOWN;
+                return not providerId->providerName.empty();
             }
 
             manager::dto::SkillID toManagerIce() const;
@@ -61,7 +56,10 @@ namespace armarx
             static SkillID FromIce(const provider::dto::SkillID&,
                                    const std::optional<ProviderID>& providerId = std::nullopt);
 
-            std::string toString(const std::string& prefix = "") const;
+            std::string toString() const;
+
+            std::optional<ProviderID> providerId;
+            std::string skillName;
         };
 
         std::ostream& operator<<(std::ostream& os, const SkillID& id);
diff --git a/source/RobotAPI/libraries/skills/manager/SkillManagerComponentPlugin.cpp b/source/RobotAPI/libraries/skills/manager/SkillManagerComponentPlugin.cpp
index 51694c8d9f2ff130f0684a0c0dda268e40c09979..a6f2d60d35123927b953d941d9a9961d60706525 100644
--- a/source/RobotAPI/libraries/skills/manager/SkillManagerComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/skills/manager/SkillManagerComponentPlugin.cpp
@@ -85,7 +85,7 @@ namespace armarx::plugins
     skills::SkillStatusUpdate
     SkillManagerComponentPlugin::executeSkill(const skills::SkillExecutionRequest& executionRequest)
     {
-        ARMARX_CHECK(executionRequest.skillId.fullySpecified());
+        ARMARX_CHECK(executionRequest.skillId.isFullySpecified());
 
         std::unique_lock l(skillProviderMapMutex);
 
@@ -158,7 +158,7 @@ namespace armarx::plugins
     SkillManagerComponentPlugin::executeSkillAsync(
         const skills::SkillExecutionRequest& executionRequest)
     {
-        ARMARX_CHECK(executionRequest.skillId.fullySpecified());
+        ARMARX_CHECK(executionRequest.skillId.isFullySpecified());
 
         std::unique_lock l(skillProviderMapMutex);
 
@@ -232,7 +232,7 @@ namespace armarx::plugins
     SkillManagerComponentPlugin::addSkillParameters(const skills::SkillExecutionID& executionId,
                                                     const aron::data::DictPtr& data)
     {
-        ARMARX_CHECK(executionId.skillId.fullySpecified());
+        ARMARX_CHECK(executionId.skillId.isFullySpecified());
 
         std::unique_lock l(skillProviderMapMutex);
         if (auto it = skillProviderMap.find(*executionId.skillId.providerId);
@@ -268,7 +268,7 @@ namespace armarx::plugins
     void
     SkillManagerComponentPlugin::abortSkill(const skills::SkillExecutionID& executionId)
     {
-        ARMARX_CHECK(executionId.skillId.fullySpecified());
+        ARMARX_CHECK(executionId.skillId.isFullySpecified());
 
         std::unique_lock l(skillProviderMapMutex);
         if (auto it = skillProviderMap.find(*executionId.skillId.providerId);
@@ -303,7 +303,7 @@ namespace armarx::plugins
     std::optional<skills::SkillDescription>
     SkillManagerComponentPlugin::getSkillDescription(const skills::SkillID& skillId)
     {
-        ARMARX_CHECK(skillId.fullySpecified());
+        ARMARX_CHECK(skillId.isFullySpecified());
 
         std::unique_lock l(skillProviderMapMutex);
         if (auto it = skillProviderMap.find(*skillId.providerId); it != skillProviderMap.end())
@@ -406,7 +406,7 @@ namespace armarx::plugins
     SkillManagerComponentPlugin::getSkillExecutionStatus(
         const skills::SkillExecutionID& executionId)
     {
-        ARMARX_CHECK(executionId.skillId.fullySpecified());
+        ARMARX_CHECK(executionId.skillId.isFullySpecified());
 
         std::unique_lock l(skillProviderMapMutex);
         if (auto it = skillProviderMap.find(*executionId.skillId.providerId);
diff --git a/source/RobotAPI/libraries/skills/provider/SkillFactory.h b/source/RobotAPI/libraries/skills/provider/SkillFactory.h
index ea4cd5edbff7130b560e7725fc57cda70841612d..63996a968a229ba218968be82d00bc068beab481 100644
--- a/source/RobotAPI/libraries/skills/provider/SkillFactory.h
+++ b/source/RobotAPI/libraries/skills/provider/SkillFactory.h
@@ -8,6 +8,7 @@ namespace armarx
 {
     namespace skills
     {
+        /// @todo Rename to SkillBlueprint.
         class SkillFactory
         {
         public:
@@ -18,11 +19,9 @@ namespace armarx
             }
 
             template <class _Skill, class... Args>
-            requires isSkill<_Skill>
-
+                requires isSkill<_Skill>
             static std::unique_ptr<SkillFactory>
             ForSkill(Args&&... args)
-
             {
                 // capture params in new lambda
                 // (https://stackoverflow.com/questions/47496358/c-lambdas-how-to-capture-variadic-parameter-pack-from-the-upper-scope)
diff --git a/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.cpp b/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.cpp
index d24535a2241afc4493ab354968313151217e5105..0b4aa3eeaf0524ce5337e78e99eb438142920fc5 100644
--- a/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.cpp
@@ -101,7 +101,7 @@ namespace armarx::plugins
     SkillProviderComponentPlugin::getSkillFactory(const armarx::skills::SkillID& skillId)
     {
         // NON BLOCKING: WE ASSERT THAT THE LOCK IS ALREADY TAKEN
-        ARMARX_CHECK(skillId.fullySpecified());
+        ARMARX_CHECK(skillId.isFullySpecified());
 
         if (skillFactories.count(skillId) == 0)
         {
@@ -117,7 +117,7 @@ namespace armarx::plugins
     SkillProviderComponentPlugin::getSkillExecutionStatus(
         const skills::SkillExecutionID& execId) const
     {
-        ARMARX_CHECK(execId.skillId.skillSpecified());
+        ARMARX_CHECK(execId.skillId.isSkillSpecified());
 
         const std::unique_lock l(skillExecutionsMutex);
         if (skillExecutions.find(execId) != skillExecutions.end())
@@ -147,7 +147,7 @@ namespace armarx::plugins
     std::optional<skills::SkillDescription>
     SkillProviderComponentPlugin::getSkillDescription(const skills::SkillID& skillId) const
     {
-        ARMARX_CHECK(skillId.fullySpecified());
+        ARMARX_CHECK(skillId.isFullySpecified());
 
         const std::unique_lock l(skillFactoriesMutex);
         if (skillFactories.find(skillId) != skillFactories.end())
@@ -166,7 +166,7 @@ namespace armarx::plugins
         const std::unique_lock l(skillFactoriesMutex);
         for (const auto& [key, fac] : skillFactories)
         {
-            ARMARX_CHECK(key.fullySpecified());
+            ARMARX_CHECK(key.isFullySpecified());
             skillDesciptions.insert({key, fac->createSkillDescription(*key.providerId)});
         }
         return skillDesciptions;
@@ -176,7 +176,7 @@ namespace armarx::plugins
     SkillProviderComponentPlugin::executeSkill(
         const skills::SkillExecutionRequest& executionRequest)
     {
-        ARMARX_CHECK(executionRequest.skillId.fullySpecified());
+        ARMARX_CHECK(executionRequest.skillId.isFullySpecified());
 
         // The skill will be executed in a seperate thread
         std::thread execution;
@@ -244,7 +244,7 @@ namespace armarx::plugins
     SkillProviderComponentPlugin::executeSkillAsync(
         const skills::SkillExecutionRequest& executionRequest)
     {
-        ARMARX_CHECK(executionRequest.skillId.fullySpecified());
+        ARMARX_CHECK(executionRequest.skillId.isFullySpecified());
 
         // The skill will be executed in a seperate thread
         std::thread execution;
@@ -299,7 +299,7 @@ namespace armarx::plugins
     SkillProviderComponentPlugin::addSkillParameters(const skills::SkillExecutionID& executionId,
                                                      const armarx::aron::data::DictPtr& input)
     {
-        ARMARX_CHECK(executionId.skillId.fullySpecified());
+        ARMARX_CHECK(executionId.skillId.isFullySpecified());
 
         const std::scoped_lock l{skillExecutionsMutex};
         auto it = skillExecutions.find(executionId);
@@ -324,7 +324,7 @@ namespace armarx::plugins
     void
     SkillProviderComponentPlugin::abortSkill(const skills::SkillExecutionID& executionId)
     {
-        ARMARX_CHECK(executionId.skillId.fullySpecified());
+        ARMARX_CHECK(executionId.skillId.isFullySpecified());
 
         const std::unique_lock l(skillExecutionsMutex);
         auto it = skillExecutions.find(executionId);
diff --git a/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.h b/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.h
index e03d73e26da0ae1fbec86daeca5bd8f1021f5a9f..9e64ea6925344a5adfea525eea8a7dd11c7d17cc 100644
--- a/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.h
+++ b/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.h
@@ -56,7 +56,8 @@ namespace armarx::plugins
 
         template <class _Skill, typename... Args>
 
-        requires skills::isSkill<_Skill> skills::SkillFactory*
+            requires skills::isSkill<_Skill>
+        skills::SkillFactory*
         addSkillFactory(Args&&... args)
         {
             auto fac = skills::SkillFactory::ForSkill<_Skill>(std::forward<Args>(args)...);
@@ -67,7 +68,8 @@ namespace armarx::plugins
 
         template <typename _FactoryT, typename... Args>
 
-        requires skills::isSkillFactory<_FactoryT> _FactoryT*
+            requires skills::isSkillFactory<_FactoryT>
+        _FactoryT*
         addCustomSkillFactory(Args&&... args)
         {
             auto fac = std::make_unique<_FactoryT>(std::forward<Args>(args)...);
@@ -160,9 +162,10 @@ namespace armarx
         // -----------------------------------------------------------------------------------------
         // LEGACY, TODO: NEEDS TESTING
         // -----------------------------------------------------------------------------------------
-        template <class _Skill>
+        template <class _Skill> /// @todo rename to SkillT or so, _[A-Z] is compiler reserved
 
-        requires skills::isSkill<_Skill> skills::SkillFactory*
+            requires skills::isSkill<_Skill>
+        skills::SkillFactory*
         addSkill(std::unique_ptr<_Skill>&& s)
         {
             return addSkillFactory<_Skill>();
@@ -170,7 +173,8 @@ namespace armarx
 
         template <class _Skill, typename... Args>
 
-        requires skills::isSkill<_Skill> skills::SkillFactory*
+            requires skills::isSkill<_Skill>
+        skills::SkillFactory*
         addSkill(Args&&... args)
         {
             return addSkillFactory<_Skill>(std::forward<Args>(args)...);
@@ -188,15 +192,17 @@ namespace armarx
 
         template <class _Skill, typename... Args>
 
-        requires skills::isSkill<_Skill> skills::SkillFactory*
+            requires skills::isSkill<_Skill>
+        skills::SkillFactory*
         addSkillFactory(Args&&... args)
         {
             return plugin->addSkillFactory<_Skill>(std::forward<Args>(args)...);
         }
 
-        template <typename _Fac, typename... Args>
+        template <typename _Fac, typename... Args> /// @todo "_Fac" is compiler reserved identifier
 
-        requires skills::isSkillFactory<_Fac> _Fac*
+            requires skills::isSkillFactory<_Fac>
+        _Fac*
         addCustomSkillFactory(Args&&... args)
         {
             return plugin->addSkillFactory<_Fac>(std::forward<Args>(args)...);
diff --git a/source/RobotAPI/libraries/skills/provider/SkillProxy.cpp b/source/RobotAPI/libraries/skills/provider/SkillProxy.cpp
index 3a969b2819eb8ec9fd2328dfe069ede85fa480f0..98276c4fb166ad2f538e06e21e1de77045467bb6 100644
--- a/source/RobotAPI/libraries/skills/provider/SkillProxy.cpp
+++ b/source/RobotAPI/libraries/skills/provider/SkillProxy.cpp
@@ -16,7 +16,7 @@ namespace armarx
                                const SkillDescription& skillDesc) :
             manager(manager), skillDescription(skillDesc)
         {
-            ARMARX_CHECK(skillDesc.skillId.fullySpecified());
+            ARMARX_CHECK(skillDesc.skillId.isFullySpecified());
         }
 
         TerminatedSkillStatusUpdate
diff --git a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp
index 41679d93a07ea883f9cf199431d83c217b33a3b6..87c446721e7612cd8cfe1027b3ff862504240ddf 100644
--- a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp
+++ b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp
@@ -56,7 +56,7 @@ namespace armarx
             // setup basic vars and lambdas
             // -------------------------------------------------------------------------------------
             // actually we should lock... however this is only read access and the members are const throughout the execution...
-            ARMARX_CHECK(statusUpdate.executionId.skillId.fullySpecified());
+            ARMARX_CHECK(statusUpdate.executionId.skillId.isFullySpecified());
 
             const auto& initial_aron_params = statusUpdate.usedParameterization.parameterization;
             const auto& callback_interface = statusUpdate.usedParameterization.callbackInterface;
@@ -116,10 +116,10 @@ namespace armarx
             // -------------------------------------------------------------------------------------
             updateStatus(SkillStatus::Constructing);
             this->skill = this->factory.createSkill(providerId);
-            this->skill->executorName = (executorName);
+            this->skill->executorName = executorName;
             this->skill->manager = skills::manager::dti::SkillManagerInterfacePrx::checkedCast(
                 callback_interface); // ugly. Get managerPrx from manager!
-            ;
+
             this->skill->callback = [&](const SkillStatus s, const armarx::aron::data::DictPtr& d)
             { updateStatus(s, d); };
 
@@ -163,9 +163,10 @@ namespace armarx
             // -------------------------------------------------------------------------------------
             // Init skill
             // -------------------------------------------------------------------------------------
+            updateStatus(SkillStatus::Initializing);
+
             try
             {
-                updateStatus(SkillStatus::Initializing);
                 Skill::InitResult initRet = skill->initSkill();
                 if (initRet.status != TerminatedSkillStatus::Succeeded)
                 {
@@ -174,7 +175,6 @@ namespace armarx
                     return exitAndMakeTerminationResult(message);
                 }
             }
-
             catch (const std::exception& ex)
             {
                 std::string message =
@@ -187,9 +187,10 @@ namespace armarx
             // -------------------------------------------------------------------------------------
             // Prepare skill
             // -------------------------------------------------------------------------------------
+            updateStatus(SkillStatus::Preparing);
+
             try
             {
-                updateStatus(SkillStatus::Preparing);
                 auto prepareRet = skill->prepareSkill();
                 while (prepareRet.status == ActiveOrTerminatedSkillStatus::Running)
                 {
@@ -197,8 +198,8 @@ namespace armarx
                                 << skillName << " fulfilled. Waiting...";
 
                     // wait...
-                    prepareRet = skill->prepareSkill();
                     std::this_thread::sleep_for(std::chrono::milliseconds(50));
+                    prepareRet = skill->prepareSkill();
                 }
 
                 if (prepareRet.status != ActiveOrTerminatedSkillStatus::Succeeded)
@@ -208,7 +209,6 @@ namespace armarx
                     return exitAndMakeTerminationResult(message);
                 }
             }
-
             catch (const std::exception& ex)
             {
                 std::string message = "SkillError 201e: An error occured during waiting for skill "
diff --git a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.h b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.h
index 45108724d3ce8ec2bf1e9e1559ebb9be5142fdb6..433777e4e81ab8b3a817a8942db4f926023d4593 100644
--- a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.h
+++ b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.h
@@ -15,6 +15,7 @@ namespace armarx
     {
         namespace detail
         {
+            /// @todo SkillRuntime
             class SkillImplementationWrapper
             {
             private: