diff --git a/source/RobotAPI/components/ArViz/CMakeLists.txt b/source/RobotAPI/components/ArViz/CMakeLists.txt
index 3bcce2987af583d43626cf9c247364a0c04c3db7..37751b994a48e374db53700680fd9c1ff94cb9a8 100644
--- a/source/RobotAPI/components/ArViz/CMakeLists.txt
+++ b/source/RobotAPI/components/ArViz/CMakeLists.txt
@@ -10,8 +10,10 @@ set(SOURCES
 
 Coin/ElementVisualizer.cpp
 
+Coin/VisualizationRobot.cpp
+
 Coin/Visualizer.cpp
-Coin/VisualizerRobot.cpp
+Coin/RegisterVisualizationTypes.cpp
 )
 
 set(HEADERS
@@ -21,19 +23,19 @@ IceConversions.h
 Coin/ElementVisualizer.h
 
 # Inventor
-Coin/VisualizerBox.h
-Coin/VisualizerCylinder.h
-Coin/VisualizerSphere.h
-Coin/VisualizerPose.h
-Coin/VisualizerLine.h
-Coin/VisualizerText.h
-Coin/VisualizerArrow.h
-Coin/VisualizerArrowCircle.h
-Coin/VisualizerPointCloud.h
-Coin/VisualizerPolygon.h
-Coin/VisualizerMesh.h
+Coin/VisualizationBox.h
+Coin/VisualizationCylinder.h
+Coin/VisualizationSphere.h
+Coin/VisualizationPose.h
+Coin/VisualizationLine.h
+Coin/VisualizationText.h
+Coin/VisualizationArrow.h
+Coin/VisualizationArrowCircle.h
+Coin/VisualizationPointCloud.h
+Coin/VisualizationPolygon.h
+Coin/VisualizationMesh.h
 # Simox
-Coin/VisualizerRobot.h
+Coin/VisualizationRobot.h
 
 Coin/Visualizer.h
 )
diff --git a/source/RobotAPI/components/ArViz/Coin/RegisterVisualizationTypes.cpp b/source/RobotAPI/components/ArViz/Coin/RegisterVisualizationTypes.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..74c9afb203cd6e3a1d4a9f6b9f05c8480535aeb2
--- /dev/null
+++ b/source/RobotAPI/components/ArViz/Coin/RegisterVisualizationTypes.cpp
@@ -0,0 +1,33 @@
+#include "Visualizer.h"
+
+#include "VisualizationBox.h"
+#include "VisualizationCylinder.h"
+#include "VisualizationSphere.h"
+#include "VisualizationPose.h"
+#include "VisualizationLine.h"
+#include "VisualizationText.h"
+#include "VisualizationArrow.h"
+#include "VisualizationArrowCircle.h"
+#include "VisualizationPointCloud.h"
+#include "VisualizationPolygon.h"
+#include "VisualizationMesh.h"
+#include "VisualizationRobot.h"
+
+
+void armarx::viz::CoinVisualizer::registerVisualizationTypes()
+{
+    using namespace armarx::viz::coin;
+
+    registerVisualizerFor<VisualizationBox>();
+    registerVisualizerFor<VisualizationCylinder>();
+    registerVisualizerFor<VisualizationSphere>();
+    registerVisualizerFor<VisualizationPose>();
+    registerVisualizerFor<VisualizationLine>();
+    registerVisualizerFor<VisualizationText>();
+    registerVisualizerFor<VisualizationArrow>();
+    registerVisualizerFor<VisualizationArrowCircle>();
+    registerVisualizerFor<VisualizationPointCloud>();
+    registerVisualizerFor<VisualizationPolygon>();
+    registerVisualizerFor<VisualizationMesh>();
+    registerVisualizerFor<VisualizationRobot>();
+}
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerArrow.h b/source/RobotAPI/components/ArViz/Coin/VisualizationArrow.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerArrow.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationArrow.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerArrowCircle.h b/source/RobotAPI/components/ArViz/Coin/VisualizationArrowCircle.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerArrowCircle.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationArrowCircle.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerBox.h b/source/RobotAPI/components/ArViz/Coin/VisualizationBox.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerBox.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationBox.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerCylinder.h b/source/RobotAPI/components/ArViz/Coin/VisualizationCylinder.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerCylinder.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationCylinder.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerLine.h b/source/RobotAPI/components/ArViz/Coin/VisualizationLine.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerLine.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationLine.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerMesh.h b/source/RobotAPI/components/ArViz/Coin/VisualizationMesh.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerMesh.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationMesh.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerPointCloud.h b/source/RobotAPI/components/ArViz/Coin/VisualizationPointCloud.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerPointCloud.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationPointCloud.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerPolygon.h b/source/RobotAPI/components/ArViz/Coin/VisualizationPolygon.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerPolygon.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationPolygon.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerPose.h b/source/RobotAPI/components/ArViz/Coin/VisualizationPose.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerPose.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationPose.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerRobot.cpp b/source/RobotAPI/components/ArViz/Coin/VisualizationRobot.cpp
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerRobot.cpp
rename to source/RobotAPI/components/ArViz/Coin/VisualizationRobot.cpp
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerRobot.h b/source/RobotAPI/components/ArViz/Coin/VisualizationRobot.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerRobot.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationRobot.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerSphere.h b/source/RobotAPI/components/ArViz/Coin/VisualizationSphere.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerSphere.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationSphere.h
diff --git a/source/RobotAPI/components/ArViz/Coin/VisualizerText.h b/source/RobotAPI/components/ArViz/Coin/VisualizationText.h
similarity index 100%
rename from source/RobotAPI/components/ArViz/Coin/VisualizerText.h
rename to source/RobotAPI/components/ArViz/Coin/VisualizationText.h
diff --git a/source/RobotAPI/components/ArViz/Coin/Visualizer.cpp b/source/RobotAPI/components/ArViz/Coin/Visualizer.cpp
index 0830be44735401cf372cdce672d660ba30b37480..31d2a20cfe84544d3ac4bb7242a0e6a031c74de1 100644
--- a/source/RobotAPI/components/ArViz/Coin/Visualizer.cpp
+++ b/source/RobotAPI/components/ArViz/Coin/Visualizer.cpp
@@ -1,18 +1,5 @@
 #include "Visualizer.h"
 
-#include "VisualizerBox.h"
-#include "VisualizerCylinder.h"
-#include "VisualizerSphere.h"
-#include "VisualizerPose.h"
-#include "VisualizerLine.h"
-#include "VisualizerText.h"
-#include "VisualizerArrow.h"
-#include "VisualizerArrowCircle.h"
-#include "VisualizerPointCloud.h"
-#include "VisualizerPolygon.h"
-#include "VisualizerMesh.h"
-#include "VisualizerRobot.h"
-
 #include <ArmarXCore/core/logging/Logging.h>
 
 #include <Inventor/sensors/SoTimerSensor.h>
@@ -49,21 +36,7 @@ namespace armarx
 
         CoinVisualizer::CoinVisualizer()
         {
-            // Register all available draw types
-            using namespace armarx::viz::coin;
-
-            registerVisualizerFor<VisualizationBox>();
-            registerVisualizerFor<VisualizationCylinder>();
-            registerVisualizerFor<VisualizationSphere>();
-            registerVisualizerFor<VisualizationPose>();
-            registerVisualizerFor<VisualizationLine>();
-            registerVisualizerFor<VisualizationText>();
-            registerVisualizerFor<VisualizationArrow>();
-            registerVisualizerFor<VisualizationArrowCircle>();
-            registerVisualizerFor<VisualizationPointCloud>();
-            registerVisualizerFor<VisualizationPolygon>();
-            registerVisualizerFor<VisualizationMesh>();
-            registerVisualizerFor<VisualizationRobot>();
+            registerVisualizationTypes();
 
             root = new SoSeparator;
 
@@ -77,6 +50,7 @@ namespace armarx
         {
         }
 
+
         void CoinVisualizer::startAsync(StorageInterfacePrx const& storage)
         {
             std::unique_lock<std::mutex> lock(stateMutex);
diff --git a/source/RobotAPI/components/ArViz/Coin/Visualizer.h b/source/RobotAPI/components/ArViz/Coin/Visualizer.h
index d035ad828ac18c10e61d18724e7f2344878d335d..02007e14a36bb69fe781a4266132ac5f7fb55e05 100644
--- a/source/RobotAPI/components/ArViz/Coin/Visualizer.h
+++ b/source/RobotAPI/components/ArViz/Coin/Visualizer.h
@@ -37,6 +37,8 @@ namespace armarx::viz
 
         ~CoinVisualizer();
 
+        void registerVisualizationTypes();
+
         void startAsync(StorageInterfacePrx const& storage);
 
         void stop();