diff --git a/source/RobotAPI/libraries/core/RobotAPIObjectFactories.cpp b/source/RobotAPI/libraries/core/RobotAPIObjectFactories.cpp
index 3ccdd28bc41ecffe6fc6a3e284fcecdeaad19535..65e405455056422f1b3ff19c176d52fe6a0ec0ac 100644
--- a/source/RobotAPI/libraries/core/RobotAPIObjectFactories.cpp
+++ b/source/RobotAPI/libraries/core/RobotAPIObjectFactories.cpp
@@ -21,6 +21,52 @@
 */
 
 #include "RobotAPIObjectFactories.h"
+
+#include "Trajectory.h"
+#include <RobotAPI/interface/core/PoseBase.h>
+#include <RobotAPI/interface/core/RobotState.h>
+#include <RobotAPI/libraries/core/Pose.h>
+#include <RobotAPI/libraries/core/FramedPose.h>
+#include <RobotAPI/libraries/core/LinkedPose.h>
+#include <RobotAPI/libraries/core/observerfilters/PoseMedianFilter.h>
+#include <RobotAPI/libraries/core/observerfilters/OffsetFilter.h>
+#include <RobotAPI/libraries/core/observerfilters/MatrixFilters.h>
+#include <RobotAPI/libraries/core/observerfilters/PoseMedianOffsetFilter.h>
+#include <RobotAPI/libraries/core/OrientedPoint.h>
+#include <RobotAPI/libraries/core/FramedOrientedPoint.h>
+
+
 using namespace armarx;
 using namespace armarx::ObjectFactories;
 const FactoryCollectionBaseCleanUp RobotAPIObjectFactories::RobotAPIObjectFactoriesVar = FactoryCollectionBase::addToPreregistration(new RobotAPIObjectFactories());
+
+ObjectFactoryMap RobotAPIObjectFactories::getFactories()
+{
+    ObjectFactoryMap map;
+
+    add<Vector2>(map);
+    add<Vector3>(map);
+    add<FramedDirection>(map);
+    add<LinkedDirection>(map);
+    add<Quaternion>(map);
+    add<Pose>(map);
+    add<FramedPose>(map);
+    add<FramedOrientation>(map);
+    add<FramedPosition>(map);
+    add<LinkedPose>(map);
+
+    add<armarx::OrientedPointBase, armarx::OrientedPoint>(map);
+    add<armarx::FramedOrientedPointBase, armarx::FramedOrientedPoint>(map);
+
+    add<armarx::PoseMedianFilterBase, armarx::filters::PoseMedianFilter>(map);
+    add<armarx::PoseMedianOffsetFilterBase, armarx::filters::PoseMedianOffsetFilter>(map);
+    add<armarx::OffsetFilterBase, armarx::filters::OffsetFilter>(map);
+    add<armarx::MatrixMaxFilterBase, armarx::filters::MatrixMaxFilter>(map);
+    add<armarx::MatrixMinFilterBase, armarx::filters::MatrixMinFilter>(map);
+    add<armarx::MatrixAvgFilterBase, armarx::filters::MatrixAvgFilter>(map);
+    add<armarx::MatrixPercentileFilterBase, armarx::filters::MatrixPercentileFilter>(map);
+    add<armarx::MatrixPercentilesFilterBase, armarx::filters::MatrixPercentilesFilter>(map);
+    add<armarx::MatrixCumulativeFrequencyFilterBase, armarx::filters::MatrixCumulativeFrequencyFilter>(map);
+    add<armarx::TrajectoryBase, armarx::Trajectory>(map);
+    return map;
+}
diff --git a/source/RobotAPI/libraries/core/RobotAPIObjectFactories.h b/source/RobotAPI/libraries/core/RobotAPIObjectFactories.h
index 0c5d159be75298d7a4c39d3f47ff582f6dd50a6f..0e5dcc8684a41c1a5b92c9869b58901cc2a7a88f 100644
--- a/source/RobotAPI/libraries/core/RobotAPIObjectFactories.h
+++ b/source/RobotAPI/libraries/core/RobotAPIObjectFactories.h
@@ -23,134 +23,11 @@
 #ifndef _ARMARX_ROBOTAPI_OBJECT_FACTORIES_H
 #define _ARMARX_ROBOTAPI_OBJECT_FACTORIES_H
 
-#include "Trajectory.h"
-
 #include <ArmarXCore/core/system/FactoryCollectionBase.h>
-#include <RobotAPI/interface/core/PoseBase.h>
-#include <RobotAPI/interface/core/RobotState.h>
-#include <RobotAPI/libraries/core/Pose.h>
-#include <RobotAPI/libraries/core/FramedPose.h>
-#include <RobotAPI/libraries/core/LinkedPose.h>
-#include <Ice/Ice.h>
-#include <RobotAPI/libraries/core/observerfilters/PoseMedianFilter.h>
-#include <RobotAPI/libraries/core/observerfilters/OffsetFilter.h>
-#include <RobotAPI/libraries/core/observerfilters/MatrixFilters.h>
-#include <RobotAPI/libraries/core/observerfilters/PoseMedianOffsetFilter.h>
-#include <RobotAPI/libraries/core/OrientedPoint.h>
-#include <RobotAPI/libraries/core/FramedOrientedPoint.h>
+
 
 namespace armarx
 {
-    class QuaternionObjectFactory : public Ice::ObjectFactory
-    {
-    public:
-        virtual Ice::ObjectPtr create(const std::string& type)
-        {
-            assert(type == armarx::QuaternionBase::ice_staticId());
-            return new Quaternion();
-        }
-        virtual void destroy()
-        {}
-    };
-
-    class Vector3ObjectFactory : public Ice::ObjectFactory
-    {
-    public:
-        virtual Ice::ObjectPtr create(const std::string& type)
-        {
-            assert(type == armarx::Vector3Base::ice_staticId());
-            return new Vector3();
-        }
-        virtual void destroy()
-        {}
-    };
-
-    class FramedDirectionObjectFactory : public Ice::ObjectFactory
-    {
-    public:
-        virtual Ice::ObjectPtr create(const std::string& type)
-        {
-            assert(type == armarx::FramedDirectionBase::ice_staticId());
-            return new FramedDirection();
-        }
-        virtual void destroy()
-        {}
-    };
-
-    class LinkedDirectionObjectFactory : public Ice::ObjectFactory
-    {
-    public:
-        virtual Ice::ObjectPtr create(const std::string& type)
-        {
-            assert(type == armarx::LinkedDirectionBase::ice_staticId());
-            return new LinkedDirection();
-        }
-        virtual void destroy()
-        {}
-    };
-
-    class PoseObjectFactory : public Ice::ObjectFactory
-    {
-    public:
-        virtual Ice::ObjectPtr create(const std::string& type)
-        {
-            assert(type == armarx::PoseBase::ice_staticId());
-            return new Pose();
-        }
-        virtual void destroy()
-        {}
-    };
-
-    class FramedPoseObjectFactory : public Ice::ObjectFactory
-    {
-    public:
-        virtual Ice::ObjectPtr create(const std::string& type)
-        {
-            assert(type == armarx::FramedPoseBase::ice_staticId());
-            return new FramedPose();
-        }
-        virtual void destroy()
-        {}
-    };
-
-    class FramedPositionObjectFactory : public Ice::ObjectFactory
-    {
-    public:
-        virtual Ice::ObjectPtr create(const std::string& type)
-        {
-            assert(type == armarx::FramedPositionBase::ice_staticId());
-            return new FramedPosition();
-        }
-        virtual void destroy()
-        {}
-    };
-
-    class FramedOrientationObjectFactory : public Ice::ObjectFactory
-    {
-    public:
-        virtual Ice::ObjectPtr create(const std::string& type)
-        {
-            assert(type == armarx::FramedOrientationBase::ice_staticId());
-            return new FramedOrientation();
-        }
-        virtual void destroy()
-        {}
-    };
-
-    class LinkedPoseObjectFactory : public Ice::ObjectFactory
-    {
-    public:
-        virtual Ice::ObjectPtr create(const std::string& type)
-        {
-            assert(type == armarx::LinkedPoseBase::ice_staticId());
-            return new LinkedPose();
-        }
-        virtual void destroy()
-        {}
-    };
-
-
-
     namespace ObjectFactories
     {
 
@@ -160,36 +37,7 @@ namespace armarx
         class RobotAPIObjectFactories : public FactoryCollectionBase
         {
         public:
-            ObjectFactoryMap getFactories()
-            {
-                ObjectFactoryMap map;
-
-                add<armarx::Vector2Base, armarx::Vector2>(map);
-                map.insert(std::make_pair(armarx::Vector3Base::ice_staticId(), new Vector3ObjectFactory));
-                map.insert(std::make_pair(armarx::FramedDirectionBase::ice_staticId(), new FramedDirectionObjectFactory));
-                map.insert(std::make_pair(armarx::LinkedDirectionBase::ice_staticId(), new LinkedDirectionObjectFactory));
-                map.insert(std::make_pair(armarx::QuaternionBase::ice_staticId(), new QuaternionObjectFactory));
-                map.insert(std::make_pair(armarx::PoseBase::ice_staticId(), new PoseObjectFactory));
-                map.insert(std::make_pair(armarx::FramedPoseBase::ice_staticId(), new FramedPoseObjectFactory));
-                map.insert(std::make_pair(armarx::FramedOrientationBase::ice_staticId(), new FramedOrientationObjectFactory));
-                map.insert(std::make_pair(armarx::FramedPositionBase::ice_staticId(), new FramedPositionObjectFactory));
-                map.insert(std::make_pair(armarx::LinkedPoseBase::ice_staticId(), new LinkedPoseObjectFactory));
-
-                add<armarx::OrientedPointBase, armarx::OrientedPoint>(map);
-                add<armarx::FramedOrientedPointBase, armarx::FramedOrientedPoint>(map);
-
-                add<armarx::PoseMedianFilterBase, armarx::filters::PoseMedianFilter>(map);
-                add<armarx::PoseMedianOffsetFilterBase, armarx::filters::PoseMedianOffsetFilter>(map);
-                add<armarx::OffsetFilterBase, armarx::filters::OffsetFilter>(map);
-                add<armarx::MatrixMaxFilterBase, armarx::filters::MatrixMaxFilter>(map);
-                add<armarx::MatrixMinFilterBase, armarx::filters::MatrixMinFilter>(map);
-                add<armarx::MatrixAvgFilterBase, armarx::filters::MatrixAvgFilter>(map);
-                add<armarx::MatrixPercentileFilterBase, armarx::filters::MatrixPercentileFilter>(map);
-                add<armarx::MatrixPercentilesFilterBase, armarx::filters::MatrixPercentilesFilter>(map);
-                add<armarx::MatrixCumulativeFrequencyFilterBase, armarx::filters::MatrixCumulativeFrequencyFilter>(map);
-                add<armarx::TrajectoryBase, armarx::Trajectory>(map);
-                return map;
-            }
+            ObjectFactoryMap getFactories();
             static const FactoryCollectionBaseCleanUp RobotAPIObjectFactoriesVar;
         };