diff --git a/source/RobotAPI/libraries/skills/provider/SpecializedSkill.h b/source/RobotAPI/libraries/skills/provider/SpecializedSkill.h
index fec98231ad74cf58da95c3bfd9324bc342e99c47..5f8e5cfc68f12fcd107b8aedc526f3e29f1d03dc 100644
--- a/source/RobotAPI/libraries/skills/provider/SpecializedSkill.h
+++ b/source/RobotAPI/libraries/skills/provider/SpecializedSkill.h
@@ -25,14 +25,8 @@ namespace armarx
             }
 
             /// Override this method with the actual implementation. The callback is for status updates to the calling instance
-            virtual Status _execute(const AronT& params, const CallbackT& callback = [](const aron::data::DictPtr& returnValue) { (void) returnValue; })
-            {
-                (void) params;
-
-                ARMARX_WARNING_S << "You have to override this method!";
-                return Status::Succeeded;
-            }
-
+            virtual Status _execute(const AronT& params, const CallbackT& callback = [](const aron::data::DictPtr& returnValue) { (void) returnValue; }) = 0;
+            
             /// Do not use anymore
             Status _execute(const aron::data::DictPtr& params, const CallbackT& callback = [](const aron::data::DictPtr& returnValue) { (void) returnValue; }) final
             {