diff --git a/MeshLib/MeshSubset.h b/MeshLib/MeshSubset.h
index 3bb591eec77809ab01c103662f80ea1e0334bf27..114eb5026842758b066be5a630a5e28b3a2b6f61 100644
--- a/MeshLib/MeshSubset.h
+++ b/MeshLib/MeshSubset.h
@@ -51,7 +51,7 @@ public:
     /// Construct a mesh subset from vector of nodes on the given mesh.
     /// \param msh Mesh
     /// \param vec_items Vector of Node pointers.
-    MeshSubset(const Mesh& msh, std::vector<Node*> const* vec_items)
+    MeshSubset(const Mesh& msh, std::vector<Node*> const& vec_items)
         : _msh(msh), _nodes(vec_items)
     {}
 
@@ -64,16 +64,16 @@ public:
     /// return the number of registered nodes
     std::size_t getNumberOfNodes() const
     {
-        return (_nodes==nullptr) ? 0 : _nodes->size();
+        return _nodes.size();
     }
 
     /// Returns the global node id Node::getID() of i-th node in the mesh
     /// subset.
-    /// \pre The _nodes must be a valid pointer to a vector of size > i.
+    /// \pre The _nodes vector must be of size > i.
     std::size_t getNodeID(std::size_t const i) const
     {
-        assert(_nodes && i < _nodes->size());
-        return (*_nodes)[i]->getID();
+        assert(i < _nodes.size());
+        return _nodes[i]->getID();
     }
 
     std::vector<Element*>::const_iterator elementsBegin() const
@@ -88,8 +88,7 @@ public:
 
     std::vector<Node*> const& getNodes() const
     {
-        assert(_nodes);
-        return *_nodes;
+        return _nodes;
     }
 
     Mesh const& getMesh() const
@@ -99,6 +98,6 @@ public:
 
 private:
     Mesh const& _msh;
-    std::vector<Node*> const* _nodes;
+    std::vector<Node*> const& _nodes;
 };
 }   // namespace MeshLib
diff --git a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h
index 7f38b3d06593f1a098e98f714d0e2776b85c1831..f9b6a84547e703a3f8ca5c1754116562587616a3 100644
--- a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h
+++ b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h
@@ -56,7 +56,7 @@ GenericNaturalBoundaryCondition<BoundaryConditionData,
         dof_table_bulk.getMeshSubset(variable_id, component_id);
 
     _nodes_subset = nodesNodesIntersection(mesh_subset.getNodes(), nodes);
-    MeshLib::MeshSubset bc_mesh_subset(mesh_subset.getMesh(), &_nodes_subset);
+    MeshLib::MeshSubset bc_mesh_subset(mesh_subset.getMesh(), _nodes_subset);
 
     // Create local DOF table from intersected mesh subsets for the given
     // variable and component ids.
diff --git a/ProcessLib/BoundaryCondition/GenericNonuniformNaturalBoundaryCondition-impl.h b/ProcessLib/BoundaryCondition/GenericNonuniformNaturalBoundaryCondition-impl.h
index 28bbbb894153402f8df2fb1bb6018b70f362838d..a7b50d8957aa117cd9f5483c814f4947151d8775 100644
--- a/ProcessLib/BoundaryCondition/GenericNonuniformNaturalBoundaryCondition-impl.h
+++ b/ProcessLib/BoundaryCondition/GenericNonuniformNaturalBoundaryCondition-impl.h
@@ -70,7 +70,7 @@ void GenericNonuniformNaturalBoundaryCondition<
 {
     // construct one-component DOF-table for the surface mesh
     _mesh_subset_all_nodes.reset(
-        new MeshLib::MeshSubset(*_boundary_mesh, &_boundary_mesh->getNodes()));
+        new MeshLib::MeshSubset(*_boundary_mesh, _boundary_mesh->getNodes()));
 
     std::vector<MeshLib::MeshSubset> all_mesh_subsets{*_mesh_subset_all_nodes};
 
diff --git a/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition-impl.h b/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition-impl.h
index d4e85f390a0cac79e6c578e633243b8e1fa68892..36fcc35df04623e7db7196bebcb1ac73581e16af 100644
--- a/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition-impl.h
+++ b/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition-impl.h
@@ -44,7 +44,7 @@ NormalTractionBoundaryCondition<LocalAssemblerImplementation>::
     auto const& mesh_subset = dof_table_bulk.getMeshSubset(variable_id, 0);
 
     _nodes_subset = nodesNodesIntersection(mesh_subset.getNodes(), nodes);
-    MeshLib::MeshSubset bc_mesh_subset(mesh_subset.getMesh(), &_nodes_subset);
+    MeshLib::MeshSubset bc_mesh_subset(mesh_subset.getMesh(), _nodes_subset);
 
     // Create component ids vector for the current variable.
     auto const& number_of_components =
diff --git a/ProcessLib/CalculateSurfaceFlux/CalculateSurfaceFlux.cpp b/ProcessLib/CalculateSurfaceFlux/CalculateSurfaceFlux.cpp
index 6df76d75d7a6926bc23c503565cf70df8a977967..915c077d6313d03db180a25ffcbaf7107cb466ac 100644
--- a/ProcessLib/CalculateSurfaceFlux/CalculateSurfaceFlux.cpp
+++ b/ProcessLib/CalculateSurfaceFlux/CalculateSurfaceFlux.cpp
@@ -26,7 +26,7 @@ CalculateSurfaceFlux::CalculateSurfaceFlux(
 
     // needed to create dof table
     auto mesh_subset_all_nodes = std::make_unique<MeshLib::MeshSubset>(
-        boundary_mesh, &boundary_mesh.getNodes());
+        boundary_mesh, boundary_mesh.getNodes());
 
     // Collect the mesh subsets in a vector.
     std::vector<MeshLib::MeshSubset> all_mesh_subsets;
diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
index 2516041361f7b53ac1d81dcc7031fdbce62c584d..68427b9bcca6015decef96af44cf883caca1ae6c 100644
--- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
+++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
@@ -79,11 +79,11 @@ void HydroMechanicsProcess<DisplacementDim>::constructDofTable()
 {
     // Create single component dof in every of the mesh's nodes.
     _mesh_subset_all_nodes =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_mesh.getNodes());
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
     // Create single component dof in the mesh's base nodes.
     _base_nodes = MeshLib::getBaseNodes(_mesh.getElements());
     _mesh_subset_base_nodes =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_base_nodes);
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _base_nodes);
 
     // TODO move the two data members somewhere else.
     // for extrapolation of secondary variables of stress or strain
diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
index 06a915b843db08deef640f96bd3f8b4ea79ae8e5..398446a10af2b6fd7e8047d82f791fbd5c51abbe 100644
--- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
+++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp
@@ -129,20 +129,20 @@ void HydroMechanicsProcess<GlobalDim>::constructDofTable()
     //------------------------------------------------------------
     // for extrapolation
     _mesh_subset_all_nodes =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_mesh.getNodes());
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
     // pressure
     _mesh_nodes_p = MeshLib::getBaseNodes(
         _process_data.p_element_status->getActiveElements());
     _mesh_subset_nodes_p =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_mesh_nodes_p);
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh_nodes_p);
     // regular u
     _mesh_subset_matrix_nodes =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_mesh.getNodes());
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
     if (!_vec_fracture_nodes.empty())
     {
         // u jump
         _mesh_subset_fracture_nodes =
-            std::make_unique<MeshLib::MeshSubset>(_mesh, &_vec_fracture_nodes);
+            std::make_unique<MeshLib::MeshSubset>(_mesh, _vec_fracture_nodes);
     }
 
     // Collect the mesh subsets in a vector.
diff --git a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
index f5a778c712d9de3f959bc2096b744824935e1729..086af13a3b8cce50ca084aeaf8baaf039d488a30 100644
--- a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
+++ b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
@@ -125,16 +125,16 @@ void SmallDeformationProcess<DisplacementDim>::constructDofTable()
     //------------------------------------------------------------
     // for extrapolation
     _mesh_subset_all_nodes =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_mesh.getNodes());
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
     // regular u
     _mesh_subset_matrix_nodes =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_mesh.getNodes());
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
     // u jump
     for (unsigned i = 0; i < _vec_fracture_nodes.size(); i++)
     {
         _mesh_subset_fracture_nodes.push_back(
             std::make_unique<MeshLib::MeshSubset const>(
-                _mesh, &_vec_fracture_nodes[i]));
+                _mesh, _vec_fracture_nodes[i]));
     }
 
     // Collect the mesh subsets in a vector.
diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.cpp b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
index 3ca66b403e6b72eca1bebc0b6d41b7fd956cd1fd..9fe29b465a42a45260b7766003479f851bc7948b 100644
--- a/ProcessLib/PhaseField/PhaseFieldProcess.cpp
+++ b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
@@ -96,7 +96,7 @@ void PhaseFieldProcess<DisplacementDim>::constructDofTable()
 {
     // Create single component dof in every of the mesh's nodes.
     _mesh_subset_all_nodes =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_mesh.getNodes());
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
 
     // TODO move the two data members somewhere else.
     // for extrapolation of secondary variables of stress or strain
diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp
index f95c095e12da127959ae948ad6dc00687cdbc38a..1dfeac7f53628f8c6390a76e9e89551ea1d3a4b8 100644
--- a/ProcessLib/Process.cpp
+++ b/ProcessLib/Process.cpp
@@ -214,7 +214,7 @@ void Process::constructDofTable()
 {
     // Create single component dof in every of the mesh's nodes.
     _mesh_subset_all_nodes =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_mesh.getNodes());
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
 
     // Vector of mesh subsets.
     std::vector<MeshLib::MeshSubset> all_mesh_subsets;
diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess-impl.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess-impl.h
index 0818ae7f3624d24df4a4134399c120120e94722b..f3b89935a4cb09bf5658864547a3e656b720161c 100644
--- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess-impl.h
+++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess-impl.h
@@ -107,7 +107,7 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>::constructDofTable()
 {
     // Create single component dof in every of the mesh's nodes.
     _mesh_subset_all_nodes =
-        std::make_unique<MeshLib::MeshSubset>(_mesh, &_mesh.getNodes());
+        std::make_unique<MeshLib::MeshSubset>(_mesh, _mesh.getNodes());
 
     // TODO move the two data members somewhere else.
     // for extrapolation of secondary variables of stress or strain
diff --git a/Tests/MathLib/TestGaussLegendreIntegration.cpp b/Tests/MathLib/TestGaussLegendreIntegration.cpp
index b72b9faf1dd94571d7089a2ff9212269619d8a83..712d5bad2a0609ad38bd3d1bd2fcf50eb6a08b97 100644
--- a/Tests/MathLib/TestGaussLegendreIntegration.cpp
+++ b/Tests/MathLib/TestGaussLegendreIntegration.cpp
@@ -121,7 +121,7 @@ public:
     IntegrationTestProcess(MeshLib::Mesh const& mesh,
                            unsigned const integration_order)
         : _integration_order(integration_order),
-          _mesh_subset_all_nodes(mesh, &mesh.getNodes())
+          _mesh_subset_all_nodes(mesh, mesh.getNodes())
     {
         std::vector<MeshLib::MeshSubset> all_mesh_subsets{
             _mesh_subset_all_nodes};
diff --git a/Tests/NumLib/LocalToGlobalIndexMap.cpp b/Tests/NumLib/LocalToGlobalIndexMap.cpp
index c7b28fd212a8f33c52210e442401c82e7c5fcd9a..bce73c4c09e9ced73e9343f01fb71ef9935e920a 100644
--- a/Tests/NumLib/LocalToGlobalIndexMap.cpp
+++ b/Tests/NumLib/LocalToGlobalIndexMap.cpp
@@ -27,7 +27,7 @@ public:
     {
         mesh.reset(MeshLib::MeshGenerator::generateLineMesh(1.0, mesh_size));
         nodesSubset =
-            std::make_unique<MeshLib::MeshSubset>(*mesh, &mesh->getNodes());
+            std::make_unique<MeshLib::MeshSubset>(*mesh, mesh->getNodes());
 
         // Add two components both based on the same nodesSubset.
         components.emplace_back(*nodesSubset);
@@ -104,7 +104,7 @@ TEST_F(NumLibLocalToGlobalIndexMapTest, DISABLED_SubsetByComponent)
     std::vector<MeshLib::Node*> nodes_intersection =
         nodesNodesIntersection(nodesSubset->getNodes(), selected_nodes);
     MeshLib::MeshSubset selected_component(nodesSubset->getMesh(),
-                                           &nodes_intersection);
+                                           nodes_intersection);
 
     auto dof_map_subset = std::unique_ptr<NumLib::LocalToGlobalIndexMap>{
         dof_map->deriveBoundaryConstrainedMap(1,    // variable id
@@ -186,7 +186,7 @@ TEST_F(NumLibLocalToGlobalIndexMapTest, DISABLED_MultipleVariablesMultipleCompon
     // - 1st variable with 2 components for all nodes, elements
     // - 2nd variable with 1 component for nodes of element id 1
     std::vector<MeshLib::Node*> var2_nodes{const_cast<MeshLib::Node*>(mesh->getNode(1)), const_cast<MeshLib::Node*>(mesh->getNode(2))};
-    MeshLib::MeshSubset var2_subset{*mesh, &var2_nodes};
+    MeshLib::MeshSubset var2_subset{*mesh, var2_nodes};
     components.emplace_back(var2_subset);
 
     std::vector<int> vec_var_n_components{2, 1};
@@ -238,7 +238,7 @@ TEST_F(NumLibLocalToGlobalIndexMapTest, DISABLED_MultipleVariablesMultipleCompon
     // - 1st variable with 2 components for all nodes, elements
     // - 2nd variable with 1 component for 1st node of element id 1
     std::vector<MeshLib::Node*> var2_nodes{const_cast<MeshLib::Node*>(mesh->getNode(1))};
-    MeshLib::MeshSubset var2_subset = {*mesh, &var2_nodes};
+    MeshLib::MeshSubset var2_subset = {*mesh, var2_nodes};
     components.emplace_back(var2_subset);
 
     std::vector<int> vec_var_n_components{2, 1};
diff --git a/Tests/NumLib/LocalToGlobalIndexMapMultiComponent.cpp b/Tests/NumLib/LocalToGlobalIndexMapMultiComponent.cpp
index 4aa7ad8ef15e6631fcd1682088cf91a0775e71fa..cb4a4070ec7146134c68b320689eebee4e3b3291 100644
--- a/Tests/NumLib/LocalToGlobalIndexMapMultiComponent.cpp
+++ b/Tests/NumLib/LocalToGlobalIndexMapMultiComponent.cpp
@@ -35,7 +35,7 @@ public:
     {
         mesh.reset(MeL::MeshGenerator::generateRegularQuadMesh(2.0, mesh_subdivs));
         mesh_items_all_nodes =
-            std::make_unique<MeL::MeshSubset>(*mesh, &mesh->getNodes());
+            std::make_unique<MeL::MeshSubset>(*mesh, mesh->getNodes());
 
         auto ply_pnts = std::make_unique<std::vector<GeoLib::Point*>>();
         ply_pnts->push_back(new GeoLib::Point(0.0, 0.0, 0.0));
@@ -72,7 +72,7 @@ public:
         nodes_subset =
             nodesNodesIntersection(mesh_items_all_nodes->getNodes(), nodes);
         mesh_items_boundary = std::make_unique<MeshLib::MeshSubset>(
-            mesh_items_all_nodes->getMesh(), &nodes_subset);
+            mesh_items_all_nodes->getMesh(), nodes_subset);
     }
 
     ~NumLibLocalToGlobalIndexMapMultiDOFTest() override
diff --git a/Tests/NumLib/TestComponentNorms.cpp b/Tests/NumLib/TestComponentNorms.cpp
index 22d81a46dd84b2ec8ec5aff71b69fa60666915c8..dd38783de0924b94bee919e177bd36f77e6e6154 100644
--- a/Tests/NumLib/TestComponentNorms.cpp
+++ b/Tests/NumLib/TestComponentNorms.cpp
@@ -49,7 +49,7 @@ struct DOFTableData
         : mesh(MeshLib::MeshGenerator::generateRegularHexMesh(
               mesh_length, mesh_elements_in_each_direction)),
 #endif
-          mesh_subset_all_nodes(*mesh, &mesh->getNodes()),
+          mesh_subset_all_nodes(*mesh, mesh->getNodes()),
           dof_table(createMeshSubsets(mesh_subset_all_nodes, num_components),
                     order)
     {
diff --git a/Tests/NumLib/TestExtrapolation.cpp b/Tests/NumLib/TestExtrapolation.cpp
index 84cca7bdcbb91e96e56e866d787064f42708c6c8..861705a4166bee79ea46d081ac3ca06abf6a8e90 100644
--- a/Tests/NumLib/TestExtrapolation.cpp
+++ b/Tests/NumLib/TestExtrapolation.cpp
@@ -149,7 +149,7 @@ public:
     ExtrapolationTestProcess(MeshLib::Mesh const& mesh,
                              unsigned const integration_order)
         : _integration_order(integration_order),
-          _mesh_subset_all_nodes(mesh, &mesh.getNodes())
+          _mesh_subset_all_nodes(mesh, mesh.getNodes())
     {
         std::vector<MeshLib::MeshSubset> all_mesh_subsets{
             _mesh_subset_all_nodes};
diff --git a/Tests/NumLib/TestMeshComponentMap.cpp b/Tests/NumLib/TestMeshComponentMap.cpp
index 68ca592e4b7a36d15ef77f289e02b5c695902d2c..0b05d69c7664e56f0eaf7e5b2a76758a9f17d31f 100644
--- a/Tests/NumLib/TestMeshComponentMap.cpp
+++ b/Tests/NumLib/TestMeshComponentMap.cpp
@@ -30,7 +30,7 @@ class NumLibMeshComponentMapTest : public ::testing::Test
         NumLibMeshComponentMapTest() : mesh(nullptr), cmap(nullptr)
         {
             mesh = MeshLib::MeshGenerator::generateLineMesh(1.0, mesh_size);
-            MeshLib::MeshSubset nodesSubset{*mesh, &mesh->getNodes()};
+            MeshLib::MeshSubset nodesSubset{*mesh, mesh->getNodes()};
 
             // Add two components both based on the same nodesSubset.
             components.emplace_back(nodesSubset);
@@ -154,7 +154,7 @@ TEST_F(NumLibMeshComponentMapTest, DISABLED_SubsetOfNodesByComponent)
     for (std::size_t id : ids)
         some_nodes.push_back(const_cast<MeshLib::Node*>(mesh->getNode(id)));
 
-    MeshLib::MeshSubset const selected_component(*mesh, &some_nodes);
+    MeshLib::MeshSubset const selected_component(*mesh, some_nodes);
 
     int const selected_component_id = 1;
 
@@ -189,7 +189,7 @@ TEST_F(NumLibMeshComponentMapTest, DISABLED_SubsetOfNodesByLocation)
     for (std::size_t id : ids)
         some_nodes.push_back(const_cast<MeshLib::Node*>(mesh->getNode(id)));
 
-    MeshLib::MeshSubset const selected_component(*mesh, &some_nodes);
+    MeshLib::MeshSubset const selected_component(*mesh, some_nodes);
 
     int const selected_component_id = 1;
 
@@ -224,7 +224,7 @@ TEST_F(NumLibMeshComponentMapTest, DISABLED_MulticomponentVariable)
     for (std::size_t id : ids)
         some_nodes.push_back(const_cast<MeshLib::Node*>(mesh->getNode(id)));
 
-    MeshLib::MeshSubset const selected_component(*mesh, &some_nodes);
+    MeshLib::MeshSubset const selected_component(*mesh, some_nodes);
 
     // Subset the original cmap.
     std::vector<int> const selected_component_ids = {0, 1};
@@ -261,7 +261,7 @@ TEST_F(NumLibMeshComponentMapTest,
     for (std::size_t id : ids)
         some_nodes.push_back(const_cast<MeshLib::Node*>(mesh->getNode(id)));
 
-    MeshLib::MeshSubset const selected_component(*mesh, &some_nodes);
+    MeshLib::MeshSubset const selected_component(*mesh, some_nodes);
 
     // Subset the original cmap.
     std::vector<int> const selected_component_ids = {1};
diff --git a/Tests/NumLib/TestSerialLinearSolver.cpp b/Tests/NumLib/TestSerialLinearSolver.cpp
index 1758498ff034c2031b43c9d882674e0c8d991e1e..75e96c0b3b4b50191ef83337d7e013323bddd662 100644
--- a/Tests/NumLib/TestSerialLinearSolver.cpp
+++ b/Tests/NumLib/TestSerialLinearSolver.cpp
@@ -46,7 +46,7 @@ TEST(NumLibSerialLinearSolver, Steady2DdiffusionQuadElem)
     // Prepare mesh items where data are assigned
     //--------------------------------------------------------------------------
     MeshLib::MeshSubset const mesh_items_all_nodes{*ex1.msh,
-                                                   &ex1.msh->getNodes()};
+                                                   ex1.msh->getNodes()};
 
     //--------------------------------------------------------------------------
     // Allocate a coefficient matrix, RHS and solution vectors
diff --git a/Tests/NumLib/TestSparsityPattern.cpp b/Tests/NumLib/TestSparsityPattern.cpp
index 0f241743c162664a10343280e93b5e43f70794ab..22b81b1c0665928e641bef00615a6519b7963b3e 100644
--- a/Tests/NumLib/TestSparsityPattern.cpp
+++ b/Tests/NumLib/TestSparsityPattern.cpp
@@ -26,7 +26,7 @@ TEST(NumLib_SparsityPattern, DISABLED_SingleComponentLinearMesh)
 {
     std::unique_ptr<MeshLib::Mesh> mesh(
         MeshLib::MeshGenerator::generateLineMesh(3u, 1.));
-    MeshLib::MeshSubset nodesSubset{*mesh, &mesh->getNodes()};
+    MeshLib::MeshSubset nodesSubset{*mesh, mesh->getNodes()};
 
     std::vector<MeshLib::MeshSubset> components{nodesSubset};
     NumLib::LocalToGlobalIndexMap dof_map(
@@ -53,7 +53,7 @@ TEST(NumLib_SparsityPattern, DISABLED_SingleComponentQuadraticMesh)
         MeshLib::MeshGenerator::generateLineMesh(3u, 1.));
     std::unique_ptr<MeshLib::Mesh> mesh(
         MeshLib::createQuadraticOrderMesh(*linear_mesh));
-    MeshLib::MeshSubset nodesSubset{*mesh, &mesh->getNodes()};
+    MeshLib::MeshSubset nodesSubset{*mesh, mesh->getNodes()};
 
     std::vector<MeshLib::MeshSubset> components{nodesSubset};
     NumLib::LocalToGlobalIndexMap dof_map(
@@ -81,7 +81,7 @@ TEST(NumLib_SparsityPattern, DISABLED_MultipleComponentsLinearMesh)
 {
     std::unique_ptr<MeshLib::Mesh> mesh(
         MeshLib::MeshGenerator::generateLineMesh(3u, 1.));
-    MeshLib::MeshSubset nodesSubset{*mesh, &mesh->getNodes()};
+    MeshLib::MeshSubset nodesSubset{*mesh, mesh->getNodes()};
 
     std::vector<MeshLib::MeshSubset> components{nodesSubset, nodesSubset};
     NumLib::LocalToGlobalIndexMap dof_map(
@@ -113,9 +113,9 @@ TEST(NumLib_SparsityPattern, DISABLED_MultipleComponentsLinearQuadraticMesh)
         MeshLib::createQuadraticOrderMesh(*linear_mesh));
     auto base_nodes = MeshLib::getBaseNodes(mesh->getElements());
     auto baseNodesSubset =
-        std::make_unique<MeshLib::MeshSubset const>(*mesh, &base_nodes);
+        std::make_unique<MeshLib::MeshSubset const>(*mesh, base_nodes);
     auto allNodesSubset =
-        std::make_unique<MeshLib::MeshSubset const>(*mesh, &mesh->getNodes());
+        std::make_unique<MeshLib::MeshSubset const>(*mesh, mesh->getNodes());
 
     std::vector<MeshLib::MeshSubset> components{*baseNodesSubset,
                                                 *allNodesSubset};