diff --git a/source/RobotAPI/applications/BusInspectionUnitObserver/BusInspectionUnitObserverApp.h b/source/RobotAPI/applications/BusInspectionUnitObserver/BusInspectionUnitObserverApp.h
deleted file mode 100644
index 697580f922cef8db5fd403947b799358036deb4d..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/BusInspectionUnitObserver/BusInspectionUnitObserverApp.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    RobotAPI::applications
- * @author     Peter Kaiser (peter dot kaiser at kit dot edu)
- * @date       2015
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/components/units/BusInspectionUnitObserver.h>
-
-namespace armarx
-{
-    class BusInspectionUnitObserverApp :
-        virtual public armarx::Application
-    {
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<BusInspectionUnitObserver>(properties));
-        }
-    };
-}
-
-
-
diff --git a/source/RobotAPI/applications/BusInspectionUnitObserver/CMakeLists.txt b/source/RobotAPI/applications/BusInspectionUnitObserver/CMakeLists.txt
index a59095c00f71bd4b9d7aceb87821a96809f8fd65..36d65f09800e2ee10984d91f237b0033f1b1473b 100644
--- a/source/RobotAPI/applications/BusInspectionUnitObserver/CMakeLists.txt
+++ b/source/RobotAPI/applications/BusInspectionUnitObserver/CMakeLists.txt
@@ -11,6 +11,6 @@ endif()
 
 set(COMPONENT_LIBS RobotAPIUnits)
 
-set(EXE_SOURCE main.cpp BusInspectionUnitObserverApp.h)
+set(EXE_SOURCE main.cpp)
 
 armarx_add_component_executable("${EXE_SOURCE}")
diff --git a/source/RobotAPI/applications/BusInspectionUnitObserver/main.cpp b/source/RobotAPI/applications/BusInspectionUnitObserver/main.cpp
index 30b071b5857276dedd957f574586397fd41ed41f..82f4b846f3b09b526193f61b3a9a331c0da62de1 100644
--- a/source/RobotAPI/applications/BusInspectionUnitObserver/main.cpp
+++ b/source/RobotAPI/applications/BusInspectionUnitObserver/main.cpp
@@ -22,12 +22,13 @@
  *             GNU General Public License
  */
 
-#include "BusInspectionUnitObserverApp.h"
+#include <RobotAPI/components/units/BusInspectionUnitObserver.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
+#include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::BusInspectionUnitObserverApp>();
-    app->setName("BusInspectionUnitObserver");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::BusInspectionUnitObserver>(argc, argv, "BusInspectionUnitObserver");
 }
diff --git a/source/RobotAPI/applications/ForceTorqueObserver/CMakeLists.txt b/source/RobotAPI/applications/ForceTorqueObserver/CMakeLists.txt
index db0ee2c94123469297b2469e01b58714fc665634..2b27a6d0039ab4aa255bdbdc8935ea6d88d3f483 100644
--- a/source/RobotAPI/applications/ForceTorqueObserver/CMakeLists.txt
+++ b/source/RobotAPI/applications/ForceTorqueObserver/CMakeLists.txt
@@ -11,6 +11,6 @@ endif()
 
 set(COMPONENT_LIBS RobotAPIUnits)
 
-set(EXE_SOURCE main.cpp ForceTorqueObserverApp.h)
+set(EXE_SOURCE main.cpp)
 
 armarx_add_component_executable("${EXE_SOURCE}")
diff --git a/source/RobotAPI/applications/ForceTorqueObserver/ForceTorqueObserverApp.h b/source/RobotAPI/applications/ForceTorqueObserver/ForceTorqueObserverApp.h
deleted file mode 100644
index 32d5ae9e6d9bdaf97ad74a3b0b4730fc5ffbecef..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/ForceTorqueObserver/ForceTorqueObserverApp.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    ArmarXCore::applications
- * @author     Kai Welke (weöle dot at kit dot edu)
- * @date       2012
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/components/units/ForceTorqueObserver.h>
-
-namespace armarx
-{
-    class ForceTorqueObserverApp :
-        virtual public armarx::Application
-    {
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<ForceTorqueObserver>(properties));
-        }
-    };
-}
-
-
-
diff --git a/source/RobotAPI/applications/ForceTorqueObserver/main.cpp b/source/RobotAPI/applications/ForceTorqueObserver/main.cpp
index a878d500dcf8dd8e3cae76c1693bc5227088c35e..5bde42c5f96cebcaaedb5b307a47148a0d640b17 100644
--- a/source/RobotAPI/applications/ForceTorqueObserver/main.cpp
+++ b/source/RobotAPI/applications/ForceTorqueObserver/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "ForceTorqueObserverApp.h"
+#include <RobotAPI/components/units/ForceTorqueObserver.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::ForceTorqueObserverApp>();
-    app->setName("ForceTorqueObserver");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::ForceTorqueObserver>(argc, argv, "ForceTorqueObserver");
 }
diff --git a/source/RobotAPI/applications/ForceTorqueUnitSimulation/CMakeLists.txt b/source/RobotAPI/applications/ForceTorqueUnitSimulation/CMakeLists.txt
index 93f53429d6846ba5a4870205063eeb0956c54310..e7da9acf454e51c4be4534e376003ca85c9b3fc2 100644
--- a/source/RobotAPI/applications/ForceTorqueUnitSimulation/CMakeLists.txt
+++ b/source/RobotAPI/applications/ForceTorqueUnitSimulation/CMakeLists.txt
@@ -10,6 +10,6 @@ endif()
 
 set(COMPONENT_LIBS RobotAPIUnits)
 
-set(SOURCES main.cpp ForceTorqueUnitSimulationApp.h)
+set(SOURCES main.cpp)
 
 armarx_add_component_executable("${SOURCES}")
diff --git a/source/RobotAPI/applications/ForceTorqueUnitSimulation/ForceTorqueUnitSimulationApp.h b/source/RobotAPI/applications/ForceTorqueUnitSimulation/ForceTorqueUnitSimulationApp.h
deleted file mode 100644
index 586593eb40731b39593866b106e2d4ec193d4a2f..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/ForceTorqueUnitSimulation/ForceTorqueUnitSimulationApp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    RobotAPI::applications
- * @author     Peter Kaiser
- * @date       2014
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/components/units/ForceTorqueUnitSimulation.h>
-
-namespace armarx
-{
-    /**
-     * Application for testing the armarx::ForceTorqueUnitSimulation
-     */
-    class ForceTorqueUnitSimulationApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<ForceTorqueUnitSimulation>(properties));
-        }
-    };
-}
diff --git a/source/RobotAPI/applications/ForceTorqueUnitSimulation/main.cpp b/source/RobotAPI/applications/ForceTorqueUnitSimulation/main.cpp
index 52d4c4e5420eb882844d0197c3888d33f01d3bc0..26a126b4be868544684291042b31c0d31ee3a4d7 100644
--- a/source/RobotAPI/applications/ForceTorqueUnitSimulation/main.cpp
+++ b/source/RobotAPI/applications/ForceTorqueUnitSimulation/main.cpp
@@ -22,12 +22,13 @@
  *             GNU General Public License
  */
 
-#include "ForceTorqueUnitSimulationApp.h"
+#include <RobotAPI/components/units/ForceTorqueUnitSimulation.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
+#include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::ForceTorqueUnitSimulationApp>();
-    app->setName("ForceTorqueUnitSimulation");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::ForceTorqueUnitSimulation>(argc, argv, "ForceTorqueUnitSimulation");
 }
diff --git a/source/RobotAPI/applications/HandUnitSimulation/HandUnitSimulationApp.h b/source/RobotAPI/applications/HandUnitSimulation/HandUnitSimulationApp.h
deleted file mode 100644
index e39aa0e71b62e4e4f4994632c4fb8e50c9ddfd28..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/HandUnitSimulation/HandUnitSimulationApp.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    RobotAPI::application::HandUnitSimulation
- * @author     David Schiebener ( schiebener at kit dot edu )
- * @date       2014
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-#ifndef _ARMARX_APPLICATION_RobotAPI_HandUnitSimulation_H
-#define _ARMARX_APPLICATION_RobotAPI_HandUnitSimulation_H
-
-
-#include <RobotAPI/components/units/HandUnitSimulation.h>
-
-#include <ArmarXCore/core/application/Application.h>
-
-namespace armarx
-{
-    /**
-     * @class HandUnitSimulationApp
-     * @brief A brief description
-     *
-     * Detailed Description
-     */
-    class HandUnitSimulationApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry,
-                   Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<HandUnitSimulation>(properties));
-        }
-    };
-}
-
-#endif
diff --git a/source/RobotAPI/applications/HandUnitSimulation/main.cpp b/source/RobotAPI/applications/HandUnitSimulation/main.cpp
index 0097fbef9588144e71bcd25a727fdfd2feb28fff..32bd1b8d3894b856d4cfb3218805f8755d34f606 100644
--- a/source/RobotAPI/applications/HandUnitSimulation/main.cpp
+++ b/source/RobotAPI/applications/HandUnitSimulation/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "HandUnitSimulationApp.h"
+#include <RobotAPI/components/units/HandUnitSimulation.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance < armarx::HandUnitSimulationApp > ();
-    app->setName("HandUnitSimulation");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::HandUnitSimulation>(argc, argv, "HandUnitSimulation");
 }
diff --git a/source/RobotAPI/applications/HapticObserver/CMakeLists.txt b/source/RobotAPI/applications/HapticObserver/CMakeLists.txt
index f9205fbe4da5b3f0cfb440f7e9e68ca8f661c356..4ecded18079f10e6c21d683967885b20291c9f46 100644
--- a/source/RobotAPI/applications/HapticObserver/CMakeLists.txt
+++ b/source/RobotAPI/applications/HapticObserver/CMakeLists.txt
@@ -10,6 +10,6 @@ endif()
 
 set(COMPONENT_LIBS RobotAPIUnits)
 
-set(EXE_SOURCE main.cpp HapticObserverApp.h)
+set(EXE_SOURCE main.cpp)
 
 armarx_add_component_executable("${EXE_SOURCE}")
diff --git a/source/RobotAPI/applications/HapticObserver/HapticObserverApp.h b/source/RobotAPI/applications/HapticObserver/HapticObserverApp.h
deleted file mode 100644
index d31398ea03cf3e9e5a47e5ec1cf7d63e1834e5c0..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/HapticObserver/HapticObserverApp.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    RobotAPI::application::HapticObserver
- * @author     Simon Ottenhaus ( simon dot ottenhaus at kit dot edu )
- * @date       2014
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-#ifndef _ARMARX_APPLICATION_RobotAPI_HapticObserver_H
-#define _ARMARX_APPLICATION_RobotAPI_HapticObserver_H
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/components/units/HapticObserver.h>
-
-namespace armarx
-{
-    /**
-     * @class HapticObserverApp
-     * @brief A brief description
-     *
-     * Detailed Description
-     */
-    class HapticObserverApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry,
-                   Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<HapticObserver>(properties));
-        }
-    };
-}
-
-#endif
diff --git a/source/RobotAPI/applications/HapticObserver/main.cpp b/source/RobotAPI/applications/HapticObserver/main.cpp
index 7d8ca2521e85506d90f38a474f33623f436fee53..c521a8ac8c46219d913e8f427c4e0b30f8ff255c 100644
--- a/source/RobotAPI/applications/HapticObserver/main.cpp
+++ b/source/RobotAPI/applications/HapticObserver/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "HapticObserverApp.h"
+#include <RobotAPI/components/units/HapticObserver.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance < armarx::HapticObserverApp > ();
-    app->setName("HapticObserver");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::HapticObserver>(argc, argv, "HapticObserver");
 }
diff --git a/source/RobotAPI/applications/HeadIKUnit/CMakeLists.txt b/source/RobotAPI/applications/HeadIKUnit/CMakeLists.txt
index 8967cc8981a3f72918d87f41b22b21fe09b44b2f..505fd541c7426a96e3e69f073734fec20c26564e 100644
--- a/source/RobotAPI/applications/HeadIKUnit/CMakeLists.txt
+++ b/source/RobotAPI/applications/HeadIKUnit/CMakeLists.txt
@@ -17,6 +17,6 @@ include_directories(${Simox_INCLUDE_DIRS})
 
 set(COMPONENT_LIBS RobotAPIUnits)
 
-set(SOURCES main.cpp HeadIKUnitApp.h)
+set(SOURCES main.cpp)
 
 armarx_add_component_executable("${SOURCES}")
diff --git a/source/RobotAPI/applications/HeadIKUnit/HeadIKUnitApp.h b/source/RobotAPI/applications/HeadIKUnit/HeadIKUnitApp.h
deleted file mode 100644
index 2523758b78a5314e0ff69181cce26805f9840d43..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/HeadIKUnit/HeadIKUnitApp.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    ArmarXCore::applications
- * @author     David Schiebener (schiebener at kit dot edu)
- * @date       2014
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/components/units/HeadIKUnit.h>
-
-namespace armarx
-{
-    class HeadIKUnitApp :
-        virtual public armarx::Application
-    {
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<HeadIKUnit>(properties));
-        }
-    };
-}
-
-
-
diff --git a/source/RobotAPI/applications/HeadIKUnit/main.cpp b/source/RobotAPI/applications/HeadIKUnit/main.cpp
index 32c2146ef7914db8495782b3f4454e94a1d76ade..83eadc25c567c53051f6c75e5c46cbe98fb70b5e 100644
--- a/source/RobotAPI/applications/HeadIKUnit/main.cpp
+++ b/source/RobotAPI/applications/HeadIKUnit/main.cpp
@@ -22,12 +22,13 @@
  *             GNU General Public License
  */
 
-#include "HeadIKUnitApp.h"
+#include <RobotAPI/components/units/HeadIKUnit.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
+#include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::HeadIKUnitApp>();
-    app->setName("HeadIKUnit");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::HeadIKUnit>(argc, argv, "HeadIKUnit");
 }
diff --git a/source/RobotAPI/applications/InertialMeasurementUnitObserver/CMakeLists.txt b/source/RobotAPI/applications/InertialMeasurementUnitObserver/CMakeLists.txt
index e280918bcf6713df170b90e5a40273c4b5da86c2..c481299f8386e5e41dd1113430fe4252220a20f3 100644
--- a/source/RobotAPI/applications/InertialMeasurementUnitObserver/CMakeLists.txt
+++ b/source/RobotAPI/applications/InertialMeasurementUnitObserver/CMakeLists.txt
@@ -11,6 +11,6 @@ armarx_component_set_name("InertialMeasurementUnitObserverApp")
 
 set(COMPONENT_LIBS ArmarXCoreInterfaces ArmarXCore ArmarXCoreObservers  RobotAPIUnits)
 
-set(EXE_SOURCE InertialMeasurementUnitObserverApp.h main.cpp)
+set(EXE_SOURCE main.cpp)
 
 armarx_add_component_executable("${EXE_SOURCE}")
diff --git a/source/RobotAPI/applications/InertialMeasurementUnitObserver/InertialMeasurementUnitObserverApp.h b/source/RobotAPI/applications/InertialMeasurementUnitObserver/InertialMeasurementUnitObserverApp.h
deleted file mode 100644
index 4d6592913eb97b62646ae55bfd949ec544c71361..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/InertialMeasurementUnitObserver/InertialMeasurementUnitObserverApp.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    RobotAPI::application::InertialMeasurementUnitObserver
- * @author     Markus Grotz ( markus-grotz at web dot de )
- * @date       2015
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-#ifndef _ARMARX_APPLICATION_RobotAPI_InertialMeasurementUnitObserver_H
-#define _ARMARX_APPLICATION_RobotAPI_InertialMeasurementUnitObserver_H
-
-
-#include <RobotAPI/components/units/InertialMeasurementUnitObserver.h>
-
-#include <ArmarXCore/core/application/Application.h>
-#include <ArmarXCore/core/Component.h>
-
-
-namespace armarx
-{
-    /**
-     * @class InertialMeasurementUnitObserverApp
-     * @brief A brief description
-     *
-     * Detailed Description
-     */
-    class InertialMeasurementUnitObserverApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry,
-                   Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<InertialMeasurementUnitObserver>(properties));
-        }
-    };
-}
-
-#endif
diff --git a/source/RobotAPI/applications/InertialMeasurementUnitObserver/main.cpp b/source/RobotAPI/applications/InertialMeasurementUnitObserver/main.cpp
index 3c787c737cefdf84ff834a910adee2354cb17cba..593baa1d190a352b0fe2991609304b25555833ba 100644
--- a/source/RobotAPI/applications/InertialMeasurementUnitObserver/main.cpp
+++ b/source/RobotAPI/applications/InertialMeasurementUnitObserver/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "InertialMeasurementUnitObserverApp.h"
+#include <RobotAPI/components/units/InertialMeasurementUnitObserver.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance < armarx::InertialMeasurementUnitObserverApp > ();
-    app->setName("InertialMeasurementUnitObserver");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::InertialMeasurementUnitObserver>(argc, argv, "InertialMeasurementUnitObserver");
 }
diff --git a/source/RobotAPI/applications/KinematicUnitObserver/CMakeLists.txt b/source/RobotAPI/applications/KinematicUnitObserver/CMakeLists.txt
index cea242b9155a85624229cb1d0b01ebee55842ebd..940574be837e22e1d7742a1082a3da03660c0b74 100644
--- a/source/RobotAPI/applications/KinematicUnitObserver/CMakeLists.txt
+++ b/source/RobotAPI/applications/KinematicUnitObserver/CMakeLists.txt
@@ -4,6 +4,6 @@ armarx_component_set_name(KinematicUnitObserver)
 
 set(COMPONENT_LIBS RobotAPIUnits)
 
-set(SOURCES main.cpp KinematicUnitObserverApp.h)
+set(SOURCES main.cpp)
 
 armarx_add_component_executable("${SOURCES}")
diff --git a/source/RobotAPI/applications/KinematicUnitObserver/KinematicUnitObserverApp.h b/source/RobotAPI/applications/KinematicUnitObserver/KinematicUnitObserverApp.h
deleted file mode 100644
index d03ca16f2dee74520680600d3409ddee341232df..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/KinematicUnitObserver/KinematicUnitObserverApp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    ArmarXCore::applications
- * @author     Christian Boege (boege dot at kit dot edu)
- * @date       2011
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/components/units/KinematicUnitObserver.h>
-
-namespace armarx
-{
-    /**
-     * Application for testing the armarx::KinematicUnitObserver
-     */
-    class KinematicUnitObserverApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<KinematicUnitObserver>(properties));
-        }
-    };
-}
diff --git a/source/RobotAPI/applications/KinematicUnitObserver/main.cpp b/source/RobotAPI/applications/KinematicUnitObserver/main.cpp
index 9b33770f291f4263b2dba4056ee1f365a10a2ce5..213d65125408c6ae4d7fb90083aef4958b848279 100644
--- a/source/RobotAPI/applications/KinematicUnitObserver/main.cpp
+++ b/source/RobotAPI/applications/KinematicUnitObserver/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "KinematicUnitObserverApp.h"
+#include <RobotAPI/components/units/KinematicUnitObserver.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::KinematicUnitObserverApp>();
-    app->setName("KinematicUnitObserver");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::KinematicUnitObserver>(argc, argv, "KinematicUnitObserver");
 }
diff --git a/source/RobotAPI/applications/KinematicUnitSimulation/CMakeLists.txt b/source/RobotAPI/applications/KinematicUnitSimulation/CMakeLists.txt
index 48b4f09038c23b32cc2b7ba79a472dcfee10e5c2..823267b1fe461a3dcc400e47a46b1ecc20eb8b54 100644
--- a/source/RobotAPI/applications/KinematicUnitSimulation/CMakeLists.txt
+++ b/source/RobotAPI/applications/KinematicUnitSimulation/CMakeLists.txt
@@ -16,6 +16,6 @@ include_directories(${Simox_INCLUDE_DIRS})
 
 set(COMPONENT_LIBS RobotAPIUnits)
 
-set(SOURCES main.cpp KinematicUnitSimulationApp.h)
+set(SOURCES main.cpp)
 
 armarx_add_component_executable("${SOURCES}")
diff --git a/source/RobotAPI/applications/KinematicUnitSimulation/KinematicUnitSimulationApp.h b/source/RobotAPI/applications/KinematicUnitSimulation/KinematicUnitSimulationApp.h
deleted file mode 100644
index 6782b1c1afa0b07db69418e4250edbaf125f0c09..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/KinematicUnitSimulation/KinematicUnitSimulationApp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    ArmarXCore::applications
- * @author     Christian Boege (boege at kit dot edu)
- * @date       2011
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/components/units/KinematicUnitSimulation.h>
-
-namespace armarx
-{
-    /**
-     * Application for testing the armarx::KinematicUnitSimulation
-     */
-    class KinematicUnitSimulationApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<KinematicUnitSimulation>(properties));
-        }
-    };
-}
diff --git a/source/RobotAPI/applications/KinematicUnitSimulation/main.cpp b/source/RobotAPI/applications/KinematicUnitSimulation/main.cpp
index fcad3cb74f1167c3a68d341ae1ad200be8e21a57..766a0c8a0d9c2628516317252259321f14d6e42d 100644
--- a/source/RobotAPI/applications/KinematicUnitSimulation/main.cpp
+++ b/source/RobotAPI/applications/KinematicUnitSimulation/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "KinematicUnitSimulationApp.h"
+#include <RobotAPI/components/units/KinematicUnitSimulation.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::KinematicUnitSimulationApp>();
-    app->setName("KinematicUnitSimulation");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::KinematicUnitSimulation>(argc, argv, "KinematicUnitSimulation");
 }
diff --git a/source/RobotAPI/applications/PlatformUnitObserver/CMakeLists.txt b/source/RobotAPI/applications/PlatformUnitObserver/CMakeLists.txt
index 83e6e45a9705999f4e9e7e4ab52c3f50672b73bf..c9deac457ac8eab1bdb0f09419066063739ac163 100644
--- a/source/RobotAPI/applications/PlatformUnitObserver/CMakeLists.txt
+++ b/source/RobotAPI/applications/PlatformUnitObserver/CMakeLists.txt
@@ -3,6 +3,6 @@ armarx_component_set_name(PlatformUnitObserver)
 
 set(COMPONENT_LIBS RobotAPIUnits)
 
-set(SOURCES main.cpp PlatformUnitObserverApp.h)
+set(SOURCES main.cpp)
 
 armarx_add_component_executable("${SOURCES}")
diff --git a/source/RobotAPI/applications/PlatformUnitObserver/PlatformUnitObserverApp.h b/source/RobotAPI/applications/PlatformUnitObserver/PlatformUnitObserverApp.h
deleted file mode 100644
index 79d661035f797649a6b681e3aa090572e9833720..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/PlatformUnitObserver/PlatformUnitObserverApp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    ArmarXCore::applications
- * @author     Manfred Kroehnert (manfred dot kroehnert at kit dot edu)
- * @date       2013
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/components/units/PlatformUnitObserver.h>
-
-namespace armarx
-{
-    /**
-     * Application for executing armarx::PlatformUnitObserver
-     */
-    class PlatformUnitObserverApp :
-        public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<PlatformUnitObserver>(properties));
-        }
-    };
-}
diff --git a/source/RobotAPI/applications/PlatformUnitObserver/main.cpp b/source/RobotAPI/applications/PlatformUnitObserver/main.cpp
index fde58a4a7b6e2aba3b8840a8d46fdf56fa01504e..71e4411ddd80a86b6e282b3368140ee61a462820 100644
--- a/source/RobotAPI/applications/PlatformUnitObserver/main.cpp
+++ b/source/RobotAPI/applications/PlatformUnitObserver/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "PlatformUnitObserverApp.h"
+#include <RobotAPI/components/units/PlatformUnitObserver.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::PlatformUnitObserverApp>();
-    app->setName("PlatformUnitObserver");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::PlatformUnitObserver>(argc, argv, "PlatformUnitObserver");
 }
diff --git a/source/RobotAPI/applications/PlatformUnitSimulation/CMakeLists.txt b/source/RobotAPI/applications/PlatformUnitSimulation/CMakeLists.txt
index 40e5ea07cc1da98424ea7270200b95b0205dc32c..a6eae5afe96958d0839d314a3a90191ee3c17317 100644
--- a/source/RobotAPI/applications/PlatformUnitSimulation/CMakeLists.txt
+++ b/source/RobotAPI/applications/PlatformUnitSimulation/CMakeLists.txt
@@ -3,6 +3,6 @@ armarx_component_set_name(PlatformUnitSimulation)
 
 set(COMPONENT_LIBS RobotAPIUnits)
 
-set(SOURCES main.cpp PlatformUnitSimulationApp.h)
+set(SOURCES main.cpp)
 
 armarx_add_component_executable("${SOURCES}")
diff --git a/source/RobotAPI/applications/PlatformUnitSimulation/PlatformUnitSimulationApp.h b/source/RobotAPI/applications/PlatformUnitSimulation/PlatformUnitSimulationApp.h
deleted file mode 100644
index c29fb3870167f48f7366b33831fde36696e13e00..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/PlatformUnitSimulation/PlatformUnitSimulationApp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    ArmarXCore::applications
- * @author     tobias haass
- * @date       2013
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/components/units/PlatformUnitSimulation.h>
-
-namespace armarx
-{
-    /**
-     * Application for testing the armarx::PlatformUnitSimulation
-     */
-    class PlatformUnitSimulationApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<PlatformUnitSimulation>(properties));
-        }
-    };
-}
diff --git a/source/RobotAPI/applications/PlatformUnitSimulation/main.cpp b/source/RobotAPI/applications/PlatformUnitSimulation/main.cpp
index 98b8790a5345f424d3c474a91dcffb8b57ced858..bca561916e0cd5f6c2e240f9af82986ea857fd07 100644
--- a/source/RobotAPI/applications/PlatformUnitSimulation/main.cpp
+++ b/source/RobotAPI/applications/PlatformUnitSimulation/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "PlatformUnitSimulationApp.h"
+#include <RobotAPI/components/units/PlatformUnitSimulation.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::PlatformUnitSimulationApp>();
-    app->setName("PlatformUnitSimulation");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::PlatformUnitSimulation>(argc, argv, "PlatformUnitSimulation");
 }
diff --git a/source/RobotAPI/applications/RobotControl/CMakeLists.txt b/source/RobotAPI/applications/RobotControl/CMakeLists.txt
index 2159a85acb6ac9bde062182aa24e9e7a6be35155..798af63ac18774167778230a0e8ffa02380fa42d 100644
--- a/source/RobotAPI/applications/RobotControl/CMakeLists.txt
+++ b/source/RobotAPI/applications/RobotControl/CMakeLists.txt
@@ -3,6 +3,6 @@ armarx_component_set_name(RobotControl)
 
 set(COMPONENT_LIBS RobotAPIOperations)
 
-set(SOURCES main.cpp RobotControlApp.h)
+set(SOURCES main.cpp)
 
 armarx_add_component_executable("${SOURCES}")
diff --git a/source/RobotAPI/applications/RobotControl/RobotControlApp.h b/source/RobotAPI/applications/RobotControl/RobotControlApp.h
deleted file mode 100644
index a78f5af33cf19c22e7cb473c3b7e092d972235ae..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/RobotControl/RobotControlApp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    ArmarXCore::applications
- * @author     Kai Welke (weöle dot at kit dot edu)
- * @date       2012
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-
-#include <ArmarXCore/core/application/Application.h>
-#include <RobotAPI/statecharts/operations/RobotControl.h>
-
-namespace armarx
-{
-    /**
-     * Application for testing armarx::RobotControl
-     */
-    class RobotControlApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<RobotControl>(properties));
-        }
-    };
-}
diff --git a/source/RobotAPI/applications/RobotControl/main.cpp b/source/RobotAPI/applications/RobotControl/main.cpp
index 96a9c733b32a6f490ef8f972187f63763612a788..720e6420bb59dd20dcda28e2d3fc16dd827171a2 100644
--- a/source/RobotAPI/applications/RobotControl/main.cpp
+++ b/source/RobotAPI/applications/RobotControl/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "RobotControlApp.h"
+#include <RobotAPI/statecharts/operations/RobotControl.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::RobotControlApp>();
-    app->setName("RobotControl");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::RobotControl>(argc, argv, "RobotControl");
 }
diff --git a/source/RobotAPI/applications/RobotControlUI/CMakeLists.txt b/source/RobotAPI/applications/RobotControlUI/CMakeLists.txt
index 2a8fbed83fb6583325dbc26092ded79d3a9c99e0..8fe3ebb2c6901804392acd2cbb09edd72dc472bf 100644
--- a/source/RobotAPI/applications/RobotControlUI/CMakeLists.txt
+++ b/source/RobotAPI/applications/RobotControlUI/CMakeLists.txt
@@ -6,7 +6,6 @@ set(COMPONENT_LIBS RobotAPIOperations)
 set(SOURCES main.cpp
     RobotControlUI.cpp
     RobotControlUI.h
-    RobotControlUIApp.h
     )
 
 armarx_add_component_executable("${SOURCES}")
diff --git a/source/RobotAPI/applications/RobotControlUI/RobotControlUIApp.h b/source/RobotAPI/applications/RobotControlUI/RobotControlUIApp.h
deleted file mode 100644
index 092fb8f2940ce790b50f408bb1ceab5835a73c24..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/RobotControlUI/RobotControlUIApp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    ArmarXCore::applications
- * @author     Kai Welke (weöle dot at kit dot edu)
- * @date       2012
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-
-#include <ArmarXCore/core/application/Application.h>
-#include "RobotControlUI.h"
-
-namespace armarx
-{
-    /**
-     * Application for testing armarx::RobotControlUI
-     */
-    class RobotControlUIApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<RobotControlUI>(properties));
-        }
-    };
-}
diff --git a/source/RobotAPI/applications/RobotControlUI/main.cpp b/source/RobotAPI/applications/RobotControlUI/main.cpp
index 4723b0d0363743308687529f880222e8110508d0..df21ab13fcf25f6e641c44e844ef3552da894b41 100644
--- a/source/RobotAPI/applications/RobotControlUI/main.cpp
+++ b/source/RobotAPI/applications/RobotControlUI/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "RobotControlUIApp.h"
+#include "RobotControlUI.h"
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance<armarx::RobotControlUIApp>();
-    app->setName("RobotControlUI");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::RobotControlUI>(argc, argv, "RobotControlUI");
 }
diff --git a/source/RobotAPI/applications/XsensIMU/CMakeLists.txt b/source/RobotAPI/applications/XsensIMU/CMakeLists.txt
index 68a3af2b1c42625496dba90e2fc18eea9acd1f6d..20bf9c0df6e04d04c194e2311f54840c85fa281f 100644
--- a/source/RobotAPI/applications/XsensIMU/CMakeLists.txt
+++ b/source/RobotAPI/applications/XsensIMU/CMakeLists.txt
@@ -11,6 +11,6 @@ armarx_component_set_name("XsensIMUApp")
 
 set(COMPONENT_LIBS ArmarXCoreInterfaces ArmarXCore XsensIMU)
 
-set(EXE_SOURCE XsensIMUApp.h main.cpp)
+set(EXE_SOURCE main.cpp)
 
 armarx_add_component_executable("${EXE_SOURCE}")
diff --git a/source/RobotAPI/applications/XsensIMU/XsensIMUApp.h b/source/RobotAPI/applications/XsensIMU/XsensIMUApp.h
deleted file mode 100644
index 0b698786f331ff33d95c0829c2b8802e76f4e16d..0000000000000000000000000000000000000000
--- a/source/RobotAPI/applications/XsensIMU/XsensIMUApp.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * This file is part of ArmarX.
- *
- * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
- *
- * ArmarX is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ArmarX is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * @package    RobotAPI::application::XsensIMU
- * @author     Markus Grotz ( markus-grotz at web dot de )
- * @date       2015
- * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
- *             GNU General Public License
- */
-
-#ifndef _ARMARX_APPLICATION_RobotAPI_XsensIMU_H
-#define _ARMARX_APPLICATION_RobotAPI_XsensIMU_H
-
-
-#include <RobotAPI/drivers/XsensIMU/XsensIMU.h>
-
-#include <ArmarXCore/core/application/Application.h>
-#include <ArmarXCore/core/Component.h>
-
-
-namespace armarx
-{
-    /**
-     * @class XsensIMUApp
-     * @brief A brief description
-     *
-     * Detailed Description
-     */
-    class XsensIMUApp :
-        virtual public armarx::Application
-    {
-        /**
-         * @see armarx::Application::setup()
-         */
-        void setup(const ManagedIceObjectRegistryInterfacePtr& registry,
-                   Ice::PropertiesPtr properties)
-        {
-            registry->addObject(Component::create<XsensIMU>(properties));
-        }
-    };
-}
-
-#endif
diff --git a/source/RobotAPI/applications/XsensIMU/main.cpp b/source/RobotAPI/applications/XsensIMU/main.cpp
index 4ecdb27a5007976190d63748cb4286e951afc82a..2b5d6083b23b08b01c2b7b3824ab79178ed36a9b 100644
--- a/source/RobotAPI/applications/XsensIMU/main.cpp
+++ b/source/RobotAPI/applications/XsensIMU/main.cpp
@@ -22,13 +22,13 @@
  *             GNU General Public License
  */
 
-#include "XsensIMUApp.h"
+#include <RobotAPI/drivers/XsensIMU/XsensIMU.h>
+
+#include <ArmarXCore/core/application/Application.h>
+#include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
 int main(int argc, char* argv[])
 {
-    armarx::ApplicationPtr app = armarx::Application::createInstance < armarx::XsensIMUApp > ();
-    app->setName("XsensIMU");
-
-    return app->main(argc, argv);
+    return armarx::runSimpleComponentApp<armarx::XsensIMU>(argc, argv, "XsensIMU");
 }