diff --git a/source/RobotAPI/components/ArViz/ArVizStorage.cpp b/source/RobotAPI/components/ArViz/ArVizStorage.cpp
index 610ed669ab7e9c676c7d739c549a65f9fb9874c9..0414f4b21bc0f1e731f7687079bf98ce42bdaff7 100644
--- a/source/RobotAPI/components/ArViz/ArVizStorage.cpp
+++ b/source/RobotAPI/components/ArViz/ArVizStorage.cpp
@@ -152,11 +152,10 @@ void ArVizStorage::compressHistory()
                 switch (updateElement->action)
                 {
                     case viz::Element_ADD:
-                    case viz::Element_UPDATE:
                         *matchingIter = updateElement;
                         break;
 
-                    case viz::Element_DELETE:
+                    case viz::Element_REMOVE:
                         existing.elements.erase(matchingIter);
                         break;
                 }
diff --git a/source/RobotAPI/components/ArVizExample/ArVizExample.cpp b/source/RobotAPI/components/ArVizExample/ArVizExample.cpp
index d1a788d01247d0c7bc11acc87c983a9418bef25e..89533815369f24d0df5de9cfabbeceded487cca3 100644
--- a/source/RobotAPI/components/ArVizExample/ArVizExample.cpp
+++ b/source/RobotAPI/components/ArVizExample/ArVizExample.cpp
@@ -179,6 +179,7 @@ namespace armarx::viz
             }
 
             std::size_t updateIndex = update - layers.data();
+            return Layer(this, updateIndex);
         }
 
         void clearLayer(std::size_t layerIndex)
@@ -267,7 +268,7 @@ void ArVizExample::update()
             //            {
             //                viz::ElementBoxPtr box(new viz::ElementBox);
             //                box->id = "box";
-            //                box->action = viz::Element_UPDATE;
+            //                box->action = viz::Element_ADD;
 
             //                Eigen::Vector3f pos = Eigen::Vector3f::Zero();
             //                pos.x() = 100.0f * std::sin(timeInSeconds);
@@ -280,7 +281,7 @@ void ArVizExample::update()
             {
                 viz::ElementCylinderPtr cyl(new viz::ElementCylinder);
                 cyl->id = "cylinder";
-                cyl->action = viz::Element_UPDATE;
+                cyl->action = viz::Element_ADD;
 
                 Eigen::Vector3f pos = Eigen::Vector3f::Zero();
                 pos.y() = 100.0f * std::sin(timeInSeconds);
@@ -296,7 +297,7 @@ void ArVizExample::update()
             {
                 viz::ElementPosePtr pose(new viz::ElementPose);
                 pose->id = "pose";
-                pose->action = viz::Element_UPDATE;
+                pose->action = viz::Element_ADD;
 
                 Eigen::Vector3f pos = Eigen::Vector3f::Zero();
                 pos.z() = 100.0f * std::sin(timeInSeconds);
@@ -310,7 +311,7 @@ void ArVizExample::update()
             {
                 viz::ElementTextPtr text(new viz::ElementText);
                 text->id = "text";
-                text->action = viz::Element_UPDATE;
+                text->action = viz::Element_ADD;
 
                 text->text = "Test Text";
                 text->scale = 4.0f;
@@ -325,7 +326,7 @@ void ArVizExample::update()
             {
                 viz::ElementArrowPtr arrow(new viz::ElementArrow);
                 arrow->id = "arrow";
-                arrow->action = viz::Element_UPDATE;
+                arrow->action = viz::Element_ADD;
 
                 float modTime = std::fmod(timeInSeconds, 2.0 * M_PI);
                 arrow->length = 200.0f + 100.0f * std::sin(modTime);
@@ -363,7 +364,7 @@ void ArVizExample::update()
             {
                 viz::ElementArrowCirclePtr circle(new viz::ElementArrowCircle);
                 circle->id = "circle";
-                circle->action = viz::Element_UPDATE;
+                circle->action = viz::Element_ADD;
 
                 float modTime = std::fmod(timeInSeconds, 2.0 * M_PI);
                 circle->completion = std::sin(modTime);
@@ -381,7 +382,7 @@ void ArVizExample::update()
             {
                 viz::ElementPolygonPtr poly(new viz::ElementPolygon);
                 poly->id = "poly";
-                poly->action = viz::Element_UPDATE;
+                poly->action = viz::Element_ADD;
 
                 poly->color = armarx::viz::Color{128, 0, 128, 255};
                 poly->lineColor = {255, 0, 0, 255};
@@ -403,7 +404,7 @@ void ArVizExample::update()
             {
                 viz::ElementPolygonPtr poly(new viz::ElementPolygon);
                 poly->id = "poly2";
-                poly->action = viz::Element_UPDATE;
+                poly->action = viz::Element_ADD;
 
                 poly->color = armarx::viz::Color{128, 255, 128, 0};
                 poly->lineColor = {255, 255, 0, 0};
@@ -425,7 +426,7 @@ void ArVizExample::update()
             {
                 viz::ElementMeshPtr mesh(new viz::ElementMesh);
                 mesh->id = "mesh";
-                mesh->action = viz::Element_UPDATE;
+                mesh->action = viz::Element_ADD;
 
                 armarx::Vector3f vertices[] =
                 {
@@ -468,7 +469,7 @@ void ArVizExample::update()
             {
                 viz::ElementRobotPtr robot(new viz::ElementRobot);
                 robot->id = "robot";
-                robot->action = viz::Element_UPDATE;
+                robot->action = viz::Element_ADD;
 
                 robot->project = "Armar6RT";
                 robot->filename = "Armar6RT/robotmodel/Armar6-SH/Armar6-SH.xml";