diff --git a/src/main.cpp b/src/main.cpp
index 2bc9dd2d294d7105a8ef8050386d58af4f57e03f..5a333d3b925672954ad2ea250c1503adb2dfd375 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -261,12 +261,8 @@ int main(int argc, char *argv[])
 
               RefNodeList ref_node_list(ref, node_id_list);
 
-              std::vector<unsigned int> node_boundary_vector(node_id_list.extent(0));
-              for (size_t r=0; r<node_id_list.extent(0); ++r) {
-                node_boundary_vector[r] = node_id_list[r];
-              }
               SymmetryBoundaryCondition<MeshType::dimension>* sym_bc
-                  = new SymmetryBoundaryCondition<MeshType::dimension>(node_boundary_vector, normal);
+                  = new SymmetryBoundaryCondition<MeshType::dimension>(ref_node_list, normal);
               std::shared_ptr<SymmetryBoundaryCondition<MeshType::dimension>> bc(sym_bc);
               bc_list.push_back(BoundaryConditionHandler(bc));
             }
@@ -341,10 +337,15 @@ int main(int argc, char *argv[])
 
       std::vector<BoundaryConditionHandler> bc_list;
       { // quite dirty!
-        SymmetryBoundaryCondition<MeshType::dimension>* sym_bc0
-            = new SymmetryBoundaryCondition<MeshType::dimension>(std::vector<unsigned int>({0u}),
-                                                                 TinyVector<1>(-1));
-        std::shared_ptr<SymmetryBoundaryCondition<1>> bc0(sym_bc0);
+        // SymmetryBoundaryCondition<MeshType::dimension>* sym_bc0
+        //     = new SymmetryBoundaryCondition<MeshType::dimension>(std::vector<unsigned int>({0u}),
+        //                                                          TinyVector<1>(-1));
+        // std::shared_ptr<SymmetryBoundaryCondition<1>> bc0(sym_bc0);
+        // bc_list.push_back(BoundaryConditionHandler(bc0));
+        PressureBoundaryCondition* pres_bc0
+            = new PressureBoundaryCondition(1,
+                                            std::vector<unsigned int>({static_cast<unsigned int>(0u)}));
+        std::shared_ptr<PressureBoundaryCondition> bc0(pres_bc0);
         bc_list.push_back(BoundaryConditionHandler(bc0));
 
         PressureBoundaryCondition* pres_bc1
diff --git a/src/scheme/BoundaryCondition.hpp b/src/scheme/BoundaryCondition.hpp
index b43bc0c561f14ed67333911e0b1fa670cdd23a34..5486c62375f6b222d124a94701fbb6f47aaf46e7 100644
--- a/src/scheme/BoundaryCondition.hpp
+++ b/src/scheme/BoundaryCondition.hpp
@@ -6,6 +6,8 @@
 
 #include <Kokkos_Core.hpp>
 
+#include <RefNodeList.hpp>
+
 class BoundaryCondition
 {
 public:
@@ -82,7 +84,8 @@ public:
   typedef TinyVector<dimension, double> Rd;
 
 private:
-  Kokkos::View<unsigned int*> m_node_list;
+  const RefNodeList m_ref_node_list;
+  // Kokkos::View<unsigned int*> m_node_list;
   const Rd m_outgoing_normal;
 public:
   const Rd& outgoingNormal() const
@@ -91,23 +94,21 @@ public:
   }
   size_t numberOfNodes() const
   {
-    return m_node_list.size();
+    return m_ref_node_list.nodeList().extent(0);
   }
 
   const Kokkos::View<const unsigned int*> nodeList() const
   {
-    return m_node_list;
+    return m_ref_node_list.nodeList();
   }
 
-  SymmetryBoundaryCondition(const std::vector<unsigned int>& nodes,
+  SymmetryBoundaryCondition(const RefNodeList& ref_node_list,
                             const Rd& outgoing_normal)
     : BoundaryCondition(BoundaryCondition::symmetry),
-      m_node_list("node_list", nodes.size()),
+      m_ref_node_list(ref_node_list),
       m_outgoing_normal(outgoing_normal)
   {
-    Kokkos::parallel_for(m_node_list.size(), KOKKOS_LAMBDA(const int& f){
-        m_node_list[f]=nodes[f];
-      });
+    ;
   }
 
   ~SymmetryBoundaryCondition() = default;