diff --git a/Examples/LaparoscopicCamera/main.cpp b/Examples/LaparoscopicCamera/main.cpp
index 32c58c5482c6a17be83c11e9c7afe8dcb2950b48..80f89ccebc0690717e2cfbb95e946ee1d8e798a1 100644
--- a/Examples/LaparoscopicCamera/main.cpp
+++ b/Examples/LaparoscopicCamera/main.cpp
@@ -39,10 +39,13 @@
 ///
 /// \brief Create camera navigation scene
 ///
-bool createCameraNavigationScene(std::shared_ptr<SDK> sdk, char* fileName)
+bool createCameraNavigationScene(
+    std::shared_ptr<SDK> sdk,
+    char* fileName,
+    char* fileNameTarget)
 {
     //-------------------------------------------------------
-    // Create scene actor 1:  plane
+    // Create plane
     //-------------------------------------------------------
     auto staticSimulator = std::make_shared<DefaultSimulator>(sdk->getErrorLog());
 
@@ -57,49 +60,80 @@ bool createCameraNavigationScene(std::shared_ptr<SDK> sdk, char* fileName)
 
     auto planeRendDetail = std::make_shared<RenderDetail>(SIMMEDTK_RENDER_NORMALS);
 
-    Color grey(0.32, 0.32, 0.32, 1.0);
-
-    planeRendDetail->setAmbientColor(grey);
-    planeRendDetail->setDiffuseColor(grey);
-    planeRendDetail->setSpecularColor(grey);
+    planeRendDetail->setAmbientColor(Color(0.5, 0.5, 0.5, 1.0));
+    planeRendDetail->setDiffuseColor(Color(0.5, 0.5, 0.5, 1.0));
+    planeRendDetail->setSpecularColor(Color(0.4, 0.4, 0.4, 1.0));
     planeRendDetail->setShininess(50.0);
 
     plane->getPlaneModel()->setRenderDetail(planeRendDetail);
 
-    sdk->addSceneActor(staticObject, staticSimulator);
+    sdk->getScene(0)->addSceneObject(staticObject);
 
     //-------------------------------------------------------
-    // Create targets
+    // Create target blocks
     //-------------------------------------------------------
+
+    Color grey(0.32, 0.32, 0.32, 1.0);
+
     auto meshRenderDetail = std::make_shared<RenderDetail>(SIMMEDTK_RENDER_NORMALS);
 
-    meshRenderDetail->setAmbientColor(Color(0.2, 0.2, 0.2, 1.0));
-    meshRenderDetail->setDiffuseColor(Color(0.8, 0.0, 0.0, 1.0));
-    meshRenderDetail->setSpecularColor(Color(0.4, 0.4, 0.4, 1.0));
+    meshRenderDetail->setAmbientColor(grey);
+    meshRenderDetail->setDiffuseColor(grey);
+    meshRenderDetail->setSpecularColor(grey);
     meshRenderDetail->setShininess(100.0);
 
     double radius = 3.0;
     for (int i = 0; i < 6; i++)
     {
-        auto staticSimulator2 = std::make_shared<DefaultSimulator>(sdk->getErrorLog());
+        auto staticBlock = std::make_shared<StaticSceneObject>();
 
+        auto targetBlock = std::make_shared<MeshCollisionModel>();
+        targetBlock->loadTriangleMesh(fileName);
+        targetBlock->getMesh()->scale(Eigen::UniformScaling<double>(0.15));//0.2
+        staticBlock->setModel(targetBlock);
+
+        targetBlock->setRenderDetail(meshRenderDetail);
+
+        sdk->getScene(0)->addSceneObject(staticBlock);
+
+        targetBlock->getMesh()->translate(Eigen::Translation3d(0, 0, -radius));
+
+        Eigen::Quaterniond q(cos(i*22.0/42), 0, sin(i*22.0/42), 0);
+        q.normalize();
+        targetBlock->getMesh()->rotate(q);
+    }
+
+    //-------------------------------------------------------
+    // Create targets
+    //-------------------------------------------------------
+    auto meshRenderDetail2 = std::make_shared<RenderDetail>(SIMMEDTK_RENDER_NORMALS);
+
+    meshRenderDetail2->setAmbientColor(Color(0.2, 0.2, 0.2, 1.0));
+    meshRenderDetail2->setDiffuseColor(Color(0.8, 0.0, 0.0, 1.0));
+    meshRenderDetail2->setSpecularColor(Color(0.4, 0.4, 0.4, 1.0));
+    meshRenderDetail2->setShininess(100.0);
+
+    for (int i = 0; i < 6; i++)
+    {
         auto staticTarget = std::make_shared<StaticSceneObject>();
 
         auto targetModel = std::make_shared<MeshCollisionModel>();
-        targetModel->loadTriangleMesh(fileName);
+        targetModel->loadTriangleMesh(fileNameTarget);
+        targetModel->getMesh()->scale(Eigen::UniformScaling<double>(0.1));//0.2
         targetModel->getMesh()->scale(Eigen::UniformScaling<double>(0.15));//0.2
         staticTarget->setModel(targetModel);
 
-        targetModel->setRenderDetail(meshRenderDetail);
+        targetModel->setRenderDetail(meshRenderDetail2);
 
-        sdk->addSceneActor(staticTarget, staticSimulator2);
+        sdk->getScene(0)->addSceneObject(staticTarget);
 
         targetModel->getMesh()->translate(Eigen::Translation3d(0, 0, -radius));
 
-        Eigen::Quaterniond q(cos(i*22.0/42), 0, sin(i*22.0/42), 0);
+        Eigen::Quaterniond q(cos(i*22.0 / 42), 0, sin(i*22.0 / 42), 0);
         q.normalize();
         targetModel->getMesh()->rotate(q);
     }
+
     return true;
 }
 
@@ -346,7 +380,7 @@ int main(int ac, char** av)
     auto sdk = SDK::createStandardSDK();
 
     // Create camera navigation scene
-    createCameraNavigationScene(sdk, "./Target.vtk");
+    createCameraNavigationScene(sdk, "./Target.vtk", "./Target-marker.vtk");
 
     //-------------------------------------------------------
     // Set up the viewer
@@ -379,8 +413,9 @@ int main(int ac, char** av)
 
     //-------------------------------------------------------
 
-    // add a camera controller
-    std::shared_ptr<LaparoscopicCameraController> camController = addCameraController(sdk);
+    // Add a camera controller
+    std::shared_ptr<LaparoscopicCameraController> camController =
+        addCameraController(sdk);
 
     // Enable screenshot capture
     camController->enableScreenCapture();
@@ -394,7 +429,7 @@ int main(int ac, char** av)
     // Run the SDK
     sdk->run();
 
-    //cleanup
+    // Cleanup
     sdk->releaseScene(scene);
 
     return 0;
diff --git a/VirtualTools/LaparoscopicCameraController.cpp b/VirtualTools/LaparoscopicCameraController.cpp
index c026b52953823d2de26cf2dd0451df24f9ae0603..a17f1d075138f71ccdd921e77ac513ae494de5cd 100644
--- a/VirtualTools/LaparoscopicCameraController.cpp
+++ b/VirtualTools/LaparoscopicCameraController.cpp
@@ -68,12 +68,13 @@ void LaparoscopicCameraController::initializeCameraScopeConfiguration()
     this->bendingRadius = 1.0; // default bending radius
     angleX = 0.0;
     angleY = 0.0;
-    maxAngleX = maxAngleY = 11.0 / 7; //+ 90 deg
+    maxAngleX = maxAngleY = 11.0 / 7; // 90 deg
     minAngleX = minAngleY = -11.0 / 7; //- 90 deg
     deltaAngleXY = (4.0 / 360)*(22.0 / 7);// 2 deg
 }
 
-void LaparoscopicCameraController::setInputDevice(std::shared_ptr<DeviceInterface> newDevice)
+void LaparoscopicCameraController::setInputDevice(
+    std::shared_ptr<DeviceInterface> newDevice)
 {
     this->inputDevice = newDevice;
 }
diff --git a/VirtualTools/LaparoscopicCameraController.h b/VirtualTools/LaparoscopicCameraController.h
index a4a7bda82098c1951de088516bacca6c5180f8f9..9ba2560403d3bfa7f066b118d592de31b41920bb 100644
--- a/VirtualTools/LaparoscopicCameraController.h
+++ b/VirtualTools/LaparoscopicCameraController.h
@@ -74,6 +74,13 @@ struct screenShotData
     ~screenShotData(){};
 };
 
+///
+/// \class LaparoscopicCameraController
+///
+/// \brief This class enables the controll of the vtk camera using an external device
+/// Additionally it allows for tip deflection just like you would see in some laparoscopic
+/// camera scopes.
+///
 class LaparoscopicCameraController : public Module
 {
 public:
@@ -234,7 +241,9 @@ public:
     void exec() override;
 
 private:
-    TransformType initialTransform; //!< Transform applied to the position obtained from device
+    TransformType initialTransform; //!< Transform applied to the position
+                                    // obtained from device
+
     core::Quaterniond orientation; //!< Previous rotation quaternion from device
 
     core::Quaterniond prevOrientation; //!< Previous rotation quaternion from phantom