diff --git a/source/RobotAPI/components/DebugDrawer/DebugDrawerComponent.cpp b/source/RobotAPI/components/DebugDrawer/DebugDrawerComponent.cpp
index 6c497ad448abe57b43fbe4d4bc56153807bd6d0b..9176c4481965c7e5f9ab6e3944b0c3e1927dcd08 100644
--- a/source/RobotAPI/components/DebugDrawer/DebugDrawerComponent.cpp
+++ b/source/RobotAPI/components/DebugDrawer/DebugDrawerComponent.cpp
@@ -248,7 +248,7 @@ namespace armarx
         removeSelectionCallbacks();
         selectionNode->deselectAll();
 
-        for (auto& e : selectedElements)
+        for (auto & e : selectedElements)
         {
             SoNode* n = SoSelection::getByName(SELECTION_NAME(e.layerName, e.elementName));
             if (n)
@@ -288,7 +288,7 @@ namespace armarx
                     name = name.substr(index + strlen(SELECTION_NAME_SPLITTER));
 
                     // Check if selected element is 'selectable'
-                    for (auto& l : layers)
+                    for (auto & l : layers)
                     {
                         std::string layer = l.first;
                         if (layers[layer].addedBoxVisualizations.find(name) != layers[layer].addedBoxVisualizations.end()
@@ -1083,11 +1083,21 @@ namespace armarx
         // load robot
         std::string filename = d.robotFile;
         ArmarXDataPath::getAbsolutePath(filename, filename);
+
+        VirtualRobot::SceneObject::VisualizationType visuType = VirtualRobot::SceneObject::Full;
+        VirtualRobot::RobotIO::RobotDescription loadMode = VirtualRobot::RobotIO::eFull;
+
+        if (d.drawStyle == DrawStyle::CollisionModel)
+        {
+            visuType = VirtualRobot::SceneObject::Collision;
+            loadMode = VirtualRobot::RobotIO::eCollisionModel;
+        }
+
         ARMARX_INFO << "Loading robot from " << filename;
 
         try
         {
-            result = RobotIO::loadRobot(filename);
+            result = RobotIO::loadRobot(filename, loadMode);
         }
         catch (...)
         {
@@ -1107,15 +1117,6 @@ namespace armarx
         m->setOverride(false);
         sep->addChild(m);
 
-
-
-        VirtualRobot::SceneObject::VisualizationType visuType = VirtualRobot::SceneObject::Full;
-
-        if (d.drawStyle == DrawStyle::CollisionModel)
-        {
-            visuType = VirtualRobot::SceneObject::Collision;
-        }
-
         boost::shared_ptr<CoinVisualization> robVisu = result->getVisualization<CoinVisualization>(visuType);
 
         if (robVisu)
@@ -1947,7 +1948,7 @@ namespace armarx
         d.layerName = layerName;
         d.name = robotName;
 
-        for (auto& it : configuration)
+        for (auto & it : configuration)
         {
             d.configuration[it.first] = it.second;
         }
@@ -1994,7 +1995,7 @@ namespace armarx
 
     void DebugDrawerComponent::clearAll(const Ice::Current&)
     {
-        for (auto& i : layers)
+        for (auto & i : layers)
         {
             clearLayer(i.first);
         }
@@ -2037,72 +2038,72 @@ namespace armarx
 
         Layer& layer = layers.at(layerName);
 
-        for (const auto& i : layer.addedCoordVisualizations)
+        for (const auto & i : layer.addedCoordVisualizations)
         {
             removePoseVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedLineVisualizations)
+        for (const auto & i : layer.addedLineVisualizations)
         {
             removeLineVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedLineSetVisualizations)
+        for (const auto & i : layer.addedLineSetVisualizations)
         {
             removeLineSetVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedBoxVisualizations)
+        for (const auto & i : layer.addedBoxVisualizations)
         {
             removeBoxVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedTextVisualizations)
+        for (const auto & i : layer.addedTextVisualizations)
         {
             removeTextVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedSphereVisualizations)
+        for (const auto & i : layer.addedSphereVisualizations)
         {
             removeSphereVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedCylinderVisualizations)
+        for (const auto & i : layer.addedCylinderVisualizations)
         {
             removeCylinderVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedPointCloudVisualizations)
+        for (const auto & i : layer.addedPointCloudVisualizations)
         {
             removePointCloudVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedPolygonVisualizations)
+        for (const auto & i : layer.addedPolygonVisualizations)
         {
             removePolygonVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedTriMeshVisualizations)
+        for (const auto & i : layer.addedTriMeshVisualizations)
         {
             removeTriMeshVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.added24BitColoredPointCloudVisualizations)
+        for (const auto & i : layer.added24BitColoredPointCloudVisualizations)
         {
             remove24BitColoredPointCloudVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedArrowVisualizations)
+        for (const auto & i : layer.addedArrowVisualizations)
         {
             removeArrowVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedRobotVisualizations)
+        for (const auto & i : layer.addedRobotVisualizations)
         {
             removeRobotVisu(layerName, i.first);
         }
 
-        for (const auto& i : layer.addedCustomVisualizations)
+        for (const auto & i : layer.addedCustomVisualizations)
         {
             removeCustomVisu(layerName, i.first);
         }
@@ -2175,74 +2176,74 @@ namespace armarx
         // check for clear&remove
         //(updates only contain elements to add for each layer after the last clear for this layer was executed)
         //this prevents a sequence add,clear,add to result in an empty layer
-        for (const auto& layer : accumulatedUpdateData.clearLayers)
+        for (const auto & layer : accumulatedUpdateData.clearLayers)
         {
             clearLayerQt(layer);
         }
         accumulatedUpdateData.clearLayers.clear();
 
-        for (const auto& layer : accumulatedUpdateData.removeLayers)
+        for (const auto & layer : accumulatedUpdateData.removeLayers)
         {
             removeLayerQt(layer);
         }
         accumulatedUpdateData.removeLayers.clear();
 
         //add elements
-        for (auto& e : accumulatedUpdateData.coord)
+        for (auto & e : accumulatedUpdateData.coord)
         {
             drawCoordSystem(e.second);
         }
         accumulatedUpdateData.coord.clear();
 
-        for (auto& e : accumulatedUpdateData.box)
+        for (auto & e : accumulatedUpdateData.box)
         {
             drawBox(e.second);
         }
         accumulatedUpdateData.box.clear();
 
-        for (auto& e : accumulatedUpdateData.line)
+        for (auto & e : accumulatedUpdateData.line)
         {
             drawLine(e.second);
         }
         accumulatedUpdateData.line.clear();
 
-        for (auto& e : accumulatedUpdateData.lineSet)
+        for (auto & e : accumulatedUpdateData.lineSet)
         {
             drawLineSet(e.second);
         }
         accumulatedUpdateData.lineSet.clear();
 
-        for (auto& e : accumulatedUpdateData.sphere)
+        for (auto & e : accumulatedUpdateData.sphere)
         {
             drawSphere(e.second);
         }
         accumulatedUpdateData.sphere.clear();
 
-        for (auto& e : accumulatedUpdateData.cylinder)
+        for (auto & e : accumulatedUpdateData.cylinder)
         {
             drawCylinder(e.second);
         }
         accumulatedUpdateData.cylinder.clear();
 
-        for (auto& e : accumulatedUpdateData.text)
+        for (auto & e : accumulatedUpdateData.text)
         {
             drawText(e.second);
         }
         accumulatedUpdateData.text.clear();
 
-        for (auto& e : accumulatedUpdateData.pointcloud)
+        for (auto & e : accumulatedUpdateData.pointcloud)
         {
             drawPointCloud(e.second);
         }
         accumulatedUpdateData.pointcloud.clear();
 
-        for (auto& e : accumulatedUpdateData.polygons)
+        for (auto & e : accumulatedUpdateData.polygons)
         {
             drawPolygon(e.second);
         }
         accumulatedUpdateData.polygons.clear();
 
-        for (auto& e : accumulatedUpdateData.arrows)
+        for (auto & e : accumulatedUpdateData.arrows)
         {
             drawArrow(e.second);
         }
@@ -2254,7 +2255,7 @@ namespace armarx
         }
         accumulatedUpdateData.triMeshes.clear();
 
-        for (auto& e : accumulatedUpdateData.robots)
+        for (auto & e : accumulatedUpdateData.robots)
         {
             ARMARX_DEBUG << "update visu / drawRobot for robot " << e.first;
             ensureExistingRobotNodes(e.second);
@@ -2263,13 +2264,13 @@ namespace armarx
         }
         accumulatedUpdateData.robots.clear();
 
-        for (auto& e : accumulatedUpdateData.coloredpointcloud)
+        for (auto & e : accumulatedUpdateData.coloredpointcloud)
         {
             drawColoredPointCloud(e.second);
         }
         accumulatedUpdateData.coloredpointcloud.clear();
 
-        for (auto& e : accumulatedUpdateData.colored24Bitpointcloud)
+        for (auto & e : accumulatedUpdateData.colored24Bitpointcloud)
         {
             draw24BitColoredPointCloud(e.second);
         }
@@ -2374,7 +2375,7 @@ namespace armarx
         ScopedRecursiveLockPtr l = getScopedVisuLock();
         Ice::StringSeq seq {};
 
-        for (const auto& layer : layers)
+        for (const auto & layer : layers)
         {
             seq.push_back(layer.first);
         }
@@ -2387,7 +2388,7 @@ namespace armarx
         ::armarx::LayerInformationSequence seq {};
         ScopedRecursiveLockPtr l = getScopedVisuLock();
 
-        for (const auto& layer : layers)
+        for (const auto & layer : layers)
         {
             int count = layer.second.addedCoordVisualizations.size() +
                         layer.second.addedLineVisualizations.size() +