diff --git a/Examples/Physiology/Fluid.hpp b/Examples/Physiology/Fluid.hpp
index 46fba29180145bd1a7c16691adc8eb5c8b3fe4f7..708548d2afe2e3b9adaf5391403d3c10e40114a8 100644
--- a/Examples/Physiology/Fluid.hpp
+++ b/Examples/Physiology/Fluid.hpp
@@ -103,10 +103,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       auto surfMeshShell = std::dynamic_pointer_cast<SurfaceMesh>(MeshIO::read(iMSTK_DATA_ROOT "/cylinder/cylinder_small_shell.stl"));
       auto tetMesh = std::dynamic_pointer_cast<TetrahedralMesh>(MeshIO::read(iMSTK_DATA_ROOT "/cylinder/cylinder_small.vtk"));
 
-      //surfMesh->rotate(Vec3d(1, 0, 0), PI / 5, Geometry::TransformType::ConcatenateToTransform);
-      //surfMeshShell->rotate(Vec3d(1, 0, 0), PI / 5, Geometry::TransformType::ConcatenateToTransform);
-      //tetMesh->rotate(Vec3d(1, 0, 0), PI / 5, Geometry::TransformType::ConcatenateToTransform);
-
       // set tetrahedral mesh used when writing VTUs
       sphModel->setGeometryMesh(tetMesh);
 
@@ -131,7 +127,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh);
       selectionFilter->update();
       auto enclosedFluidPoints = selectionFilter->getOutputPoints();
-      //auto enclosedFluidPoints = GeometryUtils::getEnclosedPoints(surfMesh, uniformMesh, false);
 
       particles = enclosedFluidPoints->getInitialVertexPositions();
 
@@ -139,7 +134,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh_wall);
       selectionFilter->update();
       auto enclosedWallPoints = selectionFilter->getOutputPoints();
-      //auto enclosedWallPoints = GeometryUtils::getEnclosedPoints(surfMeshShell, uniformMesh_wall, false);
 
       StdVectorOfVec3d wallParticles = enclosedWallPoints->getInitialVertexPositions();
 
@@ -196,7 +190,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh);
       selectionFilter->update();
       auto enclosedFluidPoints = selectionFilter->getOutputPoints();
-      //auto enclosedFluidPoints = GeometryUtils::getEnclosedPoints(surfMesh, uniformMesh, false);
 
       particles = enclosedFluidPoints->getInitialVertexPositions();
 
@@ -204,7 +197,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh_wall);
       selectionFilter->update();
       auto enclosedWallPoints = selectionFilter->getOutputPoints();
-      //auto enclosedWallPoints = GeometryUtils::getEnclosedPoints(surfMeshShell, uniformMesh_wall, false);
       
       StdVectorOfVec3d wallParticles = enclosedWallPoints->getInitialVertexPositions();
 
@@ -233,7 +225,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
 
       speedOfSound = 300;
   }
-
   else if (SCENE_ID == 3)
   {
       // bifurcation flow
@@ -265,7 +256,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh);
       selectionFilter->update();
       auto enclosedFluidPoints = selectionFilter->getOutputPoints();
-      //auto enclosedFluidPoints = GeometryUtils::getEnclosedPoints(surfMesh, uniformMesh, false);
 
       particles = enclosedFluidPoints->getInitialVertexPositions();
 
@@ -273,7 +263,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh_wall);
       selectionFilter->update();
       auto enclosedWallPoints = selectionFilter->getOutputPoints();
-      //auto enclosedWallPoints = GeometryUtils::getEnclosedPoints(surfMeshShell, uniformMesh_wall, false);
 
       StdVectorOfVec3d wallParticles = enclosedWallPoints->getInitialVertexPositions();
   
@@ -312,10 +301,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       auto surfMeshShell = std::dynamic_pointer_cast<SurfaceMesh>(MeshIO::read(iMSTK_DATA_ROOT "/cylinder/cylinder_small_shell_cut_ellipse.stl"));
       auto tetMesh = std::dynamic_pointer_cast<TetrahedralMesh>(MeshIO::read(iMSTK_DATA_ROOT "/cylinder/cylinder_small.vtk"));
 
-      //surfMesh->rotate(Vec3d(1, 0, 0), PI / 5, Geometry::TransformType::ConcatenateToTransform);
-      //surfMeshShell->rotate(Vec3d(1, 0, 0), PI / 5, Geometry::TransformType::ConcatenateToTransform);
-      //tetMesh->rotate(Vec3d(1, 0, 0), PI / 5, Geometry::TransformType::ConcatenateToTransform);
-
       // set tetrahedral mesh used when writing VTUs
       sphModel->setGeometryMesh(tetMesh);
 
@@ -340,7 +325,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh);
       selectionFilter->update();
       auto enclosedFluidPoints = selectionFilter->getOutputPoints();
-      //auto enclosedFluidPoints = GeometryUtils::getEnclosedPoints(surfMesh, uniformMesh, false);
 
       particles = enclosedFluidPoints->getInitialVertexPositions();
 
@@ -348,7 +332,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh_wall);
       selectionFilter->update();
       auto enclosedWallPoints = selectionFilter->getOutputPoints();
-      //auto enclosedWallPoints = GeometryUtils::getEnclosedPoints(surfMeshShell, uniformMesh_wall, false);
       
       StdVectorOfVec3d wallParticles = enclosedWallPoints->getInitialVertexPositions();
 
@@ -381,7 +364,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       auto sphHemorrhageModel = std::make_shared<SPHHemorrhage>(hemorrhagePlaneCenter, hemorrhagePlaneRadius, hemorrhagePlaneArea, hemorrhagePlaneOutwardNormal);
       sphModel->setHemorrhageModel(sphHemorrhageModel);
   }
-
   else if (SCENE_ID == 5)
   {
       // femoral artery flow with leak
@@ -389,10 +371,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       auto surfMeshShell = std::dynamic_pointer_cast<SurfaceMesh>(MeshIO::read(iMSTK_DATA_ROOT "/femoral/femoral_artery_shell.stl"));
       auto tetMesh = std::dynamic_pointer_cast<TetrahedralMesh>(MeshIO::read(iMSTK_DATA_ROOT "/femoral/femoral_artery.vtk"));
 
-      //surfMesh->rotate(Vec3d(1, 0, 0), PI / 5, Geometry::TransformType::ConcatenateToTransform);
-      //surfMeshShell->rotate(Vec3d(1, 0, 0), PI / 5, Geometry::TransformType::ConcatenateToTransform);
-      //tetMesh->rotate(Vec3d(1, 0, 0), PI / 5, Geometry::TransformType::ConcatenateToTransform);
-
       // set tetrahedral mesh used when writing VTUs
       sphModel->setGeometryMesh(tetMesh);
 
@@ -417,7 +395,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh);
       selectionFilter->update();
       auto enclosedFluidPoints = selectionFilter->getOutputPoints();
-      //auto enclosedFluidPoints = GeometryUtils::getEnclosedPoints(surfMesh, uniformMesh, false);
 
       particles = enclosedFluidPoints->getInitialVertexPositions();
       
@@ -425,7 +402,6 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       selectionFilter->setInputPoints(uniformMesh_wall);
       selectionFilter->update();
       auto enclosedWallPoints = selectionFilter->getOutputPoints();
-      //auto enclosedWallPoints = GeometryUtils::getEnclosedPoints(surfMeshShell, uniformMesh_wall, false);
 
       StdVectorOfVec3d wallParticles = enclosedWallPoints->getInitialVertexPositions();
 
@@ -449,15 +425,27 @@ generateFluid(const std::shared_ptr<Scene>& scene, const double particleRadius)
       StdVectorOfVec3d outletNormals{ Vec3d(1, 0, 0) };
       std::vector<std::pair<Vec3d, Vec3d>> outletCoords{ std::make_pair(outletMinCoord, outletMaxCoord) };
 
-      auto sphBoundaryConditions = std::make_shared<SPHBoundaryConditions>(inletCoords, outletCoords, fluidCoords, inletNormal, outletNormals, inletRadius, inletCenterPoint, inletFlowRate, particles, wallParticles);
+      auto sphBoundaryConditions = std::make_shared<SPHBoundaryConditions>(inletCoords, 
+                                                                           outletCoords, 
+                                                                           fluidCoords, 
+                                                                           inletNormal, 
+                                                                           outletNormals, 
+                                                                           inletRadius, 
+                                                                           inletCenterPoint, 
+                                                                           inletFlowRate, 
+                                                                           particles, 
+                                                                           wallParticles);
       sphModel->setBoundaryConditions(sphBoundaryConditions);
       const Vec3d hemorrhagePlaneCenter(0.57, -0.16, -0.12);
-      const double hemorrhagePlaneRadius = 0.4;
-      //const double hemorrhagePlaneArea = 0.018;
-      const double hemorrhagePlaneArea = 0.158;
-      //const double hemorrhagePlaneArea = 0.3152;
+      const double hemorrhagePlaneRadius = 0.4;      
+      const double hemorrhagePlaneArea = 0.158;      
       const Vec3d hemorrhagePlaneNormal(0.31, -0.14, -0.94);
-      auto sphHemorrhageModel = std::make_shared<SPHHemorrhage>(hemorrhagePlaneCenter, hemorrhagePlaneRadius, hemorrhagePlaneArea, hemorrhagePlaneNormal);
+      auto sphHemorrhageModel = std::make_shared<SPHHemorrhage>(
+          hemorrhagePlaneCenter, 
+          hemorrhagePlaneRadius, 
+          hemorrhagePlaneArea, 
+          hemorrhagePlaneNormal);
+
       sphModel->setHemorrhageModel(sphHemorrhageModel);
 
       sphModel->setInitialVelocities(particles.size(), Vec3d(0.1, 0, 0));
diff --git a/Examples/Physiology/PhysiologyExample.hpp b/Examples/Physiology/PhysiologyExample.hpp
index 8d5e1ace1392a3441f1a498b4302539e8c3b5e3b..8ab484474a67116a796912a05ac9315a1afd90d6 100644
--- a/Examples/Physiology/PhysiologyExample.hpp
+++ b/Examples/Physiology/PhysiologyExample.hpp
@@ -29,7 +29,6 @@
 #include "imstkLight.h"
 #include "imstkPhysiologyModel.h"
 #include "imstkPhysiologyObject.h"
-//#include "imstkPlane.h"
 #include "imstkPointSet.h"
 #include "imstkObjectInteractionFactory.h"
 #include "imstkScene.h"
@@ -39,7 +38,6 @@
 #include "imstkSPHObject.h"
 #include "imstkSPHPhysiologyInteraction.h"
 #include "imstkTaskGraph.h"
-//#include "imstkVTKTextStatusManager.h"
 #include "imstkVTKViewer.h"
 #include "imstkMouseSceneControl.h"
 #include "imstkKeyboardSceneControl.h"
@@ -51,18 +49,25 @@ using namespace imstk;
 static std::shared_ptr<PhysiologyObject> 
 makePhysiologyObject()
 {
-    // configure model
-    auto physiologyParams = std::make_shared<PhysiologyModelConfig>();
+    // configuration for the Physiology model    
+    imstkNew<PhysiologyModelConfig> physiologyParams;
 
-    // Create a physics model
-    auto physiologyModel = std::make_shared<PhysiologyModel>();
+    // Set the base physiology state to available preset
+    physiologyParams->m_basePatient = PatientPhysiology::StandardMale;
+
+    // Create a Physiology model
+    imstkNew<PhysiologyModel> physiologyModel;
     physiologyModel->configure(physiologyParams);
 
-    // Setup hemorrhage action
-    auto hemorrhageAction = std::make_shared<HemorrhageAction>(HemorrhageAction::Type::External, "VascularCompartment::RightLeg");
+    // Create an external hemorrhage on the right leg
+    imstkNew<HemorrhageAction> hemorrhageAction(HemorrhageAction::Type::External,
+                                                               "VascularCompartment::RightLeg");
+    
+    
+    // Add a hemorrhage action to the model
     physiologyModel->addAction("Hemorrhage", hemorrhageAction);
 
-    auto physiologyObj = std::make_shared<PhysiologyObject>("Pulse");
+    imstkNew<PhysiologyObject> physiologyObj("Human physiology");
     physiologyObj->setDynamicalModel(physiologyModel);
 
     return physiologyObj;
@@ -129,7 +134,7 @@ main(int argc, char* argv[])
     scene->getCollisionGraph()->addInteraction(interactionPair);
 
     // configure camera
-    (SCENE_ID == 5) ? scene->getActiveCamera()->setPosition(0, 1.0, 4.0) : scene->getActiveCamera()->setPosition(0, 1.0, 5.0);
+    (SCENE_ID == 5) ? scene->getActiveCamera()->setPosition(0, 1.0, 4.0) : scene->getActiveCamera()->setPosition(0, 1.0, 7.0);
 
     // configure light (white)
     auto whiteLight = std::make_shared<DirectionalLight>("whiteLight");
@@ -137,7 +142,7 @@ main(int argc, char* argv[])
     whiteLight->setIntensity(7);
     scene->addLight(whiteLight);
     
-    // Setup some scalars
+    //Setup some scalars
     std::shared_ptr<PointSet> fluidGeometry = std::dynamic_pointer_cast<PointSet>(fluidObj->getPhysicsGeometry());
     std::shared_ptr<StdVectorOfReal> scalarsPtr = std::make_shared<StdVectorOfReal>(fluidGeometry->getNumVertices());
     std::fill_n(scalarsPtr->data(), scalarsPtr->size(), 0.0);
@@ -167,18 +172,21 @@ main(int argc, char* argv[])
             }, "PrintTotalTime");
         taskGraph->insertAfter(fluidObj->getDynamicalSPHModel()->getMoveParticlesNode(), printTotalTime);
 
-        std::shared_ptr<TaskNode> writeSPHStateToCSV = std::make_shared<TaskNode>([&]() {
+        std::shared_ptr<TaskNode> writeSPHStateToCSV = std::make_shared<TaskNode>([&]() 
+            {
             fluidObj->getDynamicalSPHModel()->writeStateToCSV();
             }, "WriteStateToCSV");
         taskGraph->insertAfter(fluidObj->getDynamicalSPHModel()->getMoveParticlesNode(), writeSPHStateToCSV);
 
-        std::shared_ptr<TaskNode> writeSPHStateToVtk = std::make_shared<TaskNode>([&]() {
+        std::shared_ptr<TaskNode> writeSPHStateToVtk = std::make_shared<TaskNode>([&]() 
+            {
             fluidObj->getDynamicalSPHModel()->writeStateToVtk();
             }, "WriteStateToVtk");
         taskGraph->insertAfter(fluidObj->getDynamicalSPHModel()->getMoveParticlesNode(), writeSPHStateToVtk);
 
         // This node colors the fluid points based on their type
-        std::shared_ptr<TaskNode> computeVelocityScalars = std::make_shared<TaskNode>([&]() {
+        std::shared_ptr<TaskNode> computeVelocityScalars = std::make_shared<TaskNode>([&]() 
+            {
             const std::shared_ptr<SPHBoundaryConditions> sphBoundaryConditions = sphModel->getBoundaryConditions();
             StdVectorOfReal& scalars = *scalarsPtr;
             for (size_t i = 0; i < sphModel->getCurrentState()->getNumParticles(); i++)
@@ -204,30 +212,35 @@ main(int argc, char* argv[])
         taskGraph->insertAfter(fluidObj->getUpdateGeometryNode(), computeVelocityScalars);
     };
 
-    // Setup a viewer to render in its own thread
-    imstkNew<VTKViewer> viewer("Viewer");
-    viewer->setActiveScene(scene);
-
-    // Setup a scene manager to advance the scene in its own thread
-    imstkNew<SceneManager> sceneManager("Scene Manager");
-    sceneManager->setActiveScene(scene);
-    viewer->addChildThread(sceneManager); // SceneManager will start/stop with viewer
-    connect<Event>(sceneManager, EventType::PostUpdate, displayColors);
-
-    // Add mouse and keyboard controls to the viewer
+    // Run the simulation
     {
-        imstkNew<MouseSceneControl> mouseControl(viewer->getMouseDevice());
-        mouseControl->setSceneManager(sceneManager);
-        viewer->addControl(mouseControl);
+        // Setup a viewer to render in its own thread
+        imstkNew<VTKViewer> viewer("Viewer");
+        viewer->setActiveScene(scene);
 
-        imstkNew<KeyboardSceneControl> keyControl(viewer->getKeyboardDevice());
-        keyControl->setSceneManager(sceneManager);
-        keyControl->setViewer(viewer);
-    }
+        // Setup a scene manager to advance the scene in its own thread
+        imstkNew<SceneManager> sceneManager("Scene Manager");
+        sceneManager->setActiveScene(scene);
+        viewer->addChildThread(sceneManager); // SceneManager will start/stop with viewer        
+        connect<Event>(sceneManager, EventType::PostUpdate, displayColors);
 
-    // Start viewer running, scene as paused
-    sceneManager->requestStatus(ThreadStatus::Running);
-    viewer->start();
+        // Add mouse and keyboard controls to the viewer
+        {
+            imstkNew<MouseSceneControl> mouseControl(viewer->getMouseDevice());
+            mouseControl->setSceneManager(sceneManager);
+            viewer->addControl(mouseControl);
+
+            imstkNew<KeyboardSceneControl> keyControl(viewer->getKeyboardDevice());
+            keyControl->setSceneManager(sceneManager);
+            keyControl->setViewer(viewer);
+            viewer->addControl(keyControl);
+        }
+   
+        // Start viewer running, scene as paused
+        sceneManager->requestStatus(ThreadStatus::Paused);
+        viewer->start(); 
+    
+    }
 
     return 0;
 }
diff --git a/Source/GeometryMappers/imstkTetraTriangleMap.cpp b/Source/GeometryMappers/imstkTetraTriangleMap.cpp
index ffbc0e6e4f2db1ab4ab46e537471d48a41cabe9b..cef134ef0ce7e8e0084e808b3d074e3cf9b22507 100644
--- a/Source/GeometryMappers/imstkTetraTriangleMap.cpp
+++ b/Source/GeometryMappers/imstkTetraTriangleMap.cpp
@@ -141,7 +141,7 @@ TetraTriangleMap::isValid() const
 {
     auto meshMaster = static_cast<TetrahedralMesh*>(m_master.get());
 #if defined(DEBUG) || defined(_DEBUG) || !defined(NDEBUG)
-    CHECK(dynamic_cast<TetrahedralMesh*>(m_master.get()) == nullptr) << "Fail to cast from geometry to mesh";
+    CHECK(dynamic_cast<TetrahedralMesh*>(m_master.get())) << "Fail to cast from geometry to mesh";
 #endif
 
     auto totalElementsMaster = meshMaster->getNumTetrahedra();