diff --git a/src/mesh/Connectivity.cpp b/src/mesh/Connectivity.cpp
index c8f7242a8ac99469392ee7db666c0136dfb1149e..2244d135584ef3a7db563d4897c15cb98ed68141 100644
--- a/src/mesh/Connectivity.cpp
+++ b/src/mesh/Connectivity.cpp
@@ -153,13 +153,14 @@ void Connectivity<3>::_computeFaceCellConnectivities()
 
   const auto& cell_to_face_matrix
       = m_item_to_item_matrix[itemId(TypeOfItem::cell)][itemId(TypeOfItem::face)];
+  auto& face_to_cell_matrix
+      = m_item_to_item_matrix[itemId(TypeOfItem::face)][itemId(TypeOfItem::cell)];
   m_connectivity_computer.computeInverseConnectivityMatrix(cell_to_face_matrix,
-                                                           m_face_to_cell_matrix);
+                                                           face_to_cell_matrix);
 
   m_face_to_cell_local_face = CellValuePerFace<unsigned short>(*this);
-
   m_connectivity_computer.computeLocalChildItemNumberInItem(cell_to_face_matrix,
-                                                            m_face_to_cell_matrix,
+                                                            face_to_cell_matrix,
                                                             m_face_to_cell_local_face);
 
   const auto& face_to_node_matrix
@@ -246,6 +247,8 @@ void Connectivity<2>::_computeFaceCellConnectivities()
       }
       ++l;
     }
-    m_face_to_cell_matrix = face_to_cell_vector;
+    auto& face_to_cell_matrix
+        = m_item_to_item_matrix[itemId(TypeOfItem::face)][itemId(TypeOfItem::cell)];
+    face_to_cell_matrix = face_to_cell_vector;
   }
 }
diff --git a/src/mesh/Connectivity.hpp b/src/mesh/Connectivity.hpp
index dd421418bd978781a7a7fd5334191cc3142ea341..269ee24a496043123b7e2dcb295c8925ac3cce7f 100644
--- a/src/mesh/Connectivity.hpp
+++ b/src/mesh/Connectivity.hpp
@@ -243,6 +243,12 @@ class Connectivity final
     return m_item_to_item_matrix[itemId(TypeOfItem::cell)][itemId(TypeOfItem::face)];
   }
 
+  KOKKOS_INLINE_FUNCTION
+  ConnectivityMatrix faceToCellMatrix() const
+  {
+    return m_item_to_item_matrix[itemId(TypeOfItem::face)][itemId(TypeOfItem::cell)];
+  }
+
   KOKKOS_INLINE_FUNCTION
   ConnectivityMatrix faceToNodeMatrix() const
   {
@@ -259,7 +265,6 @@ class Connectivity final
 
   FaceValuePerCell<bool> m_cell_face_is_reversed;
 
-  ConnectivityMatrix m_face_to_cell_matrix;
   CellValuePerFace<unsigned short> m_face_to_cell_local_face;
 
   CellValuePerNode<unsigned short> m_node_to_cell_local_node;
@@ -333,7 +338,9 @@ private:
   KOKKOS_INLINE_FUNCTION
   size_t numberOfFaces() const
   {
-    return m_face_to_cell_matrix.numRows();
+    const auto& face_to_node_matrix
+        = m_item_to_item_matrix[itemId(TypeOfItem::face)][itemId(TypeOfItem::node)];
+    return face_to_node_matrix.numRows();
   }
 
   KOKKOS_INLINE_FUNCTION
@@ -440,8 +447,12 @@ inline const ConnectivityMatrix&
 Connectivity<3>::itemToItemMatrix<TypeOfItem::face,
                                   TypeOfItem::cell>() const
 {
-  return m_face_to_cell_matrix;
+  const auto& face_to_cell_matrix
+      = m_item_to_item_matrix[itemId(TypeOfItem::face)][itemId(TypeOfItem::cell)];
+
+  return face_to_cell_matrix;
 }
+
 template <>
 template <>
 inline const ConnectivityMatrix&
@@ -497,7 +508,10 @@ inline const ConnectivityMatrix&
 Connectivity<2>::itemToItemMatrix<TypeOfItem::face,
                                   TypeOfItem::cell>() const
 {
-  return m_face_to_cell_matrix;
+  const auto& face_to_cell_matrix
+      = m_item_to_item_matrix[itemId(TypeOfItem::face)][itemId(TypeOfItem::cell)];
+
+  return face_to_cell_matrix;
 }
 
 template <>
@@ -554,8 +568,10 @@ inline const ConnectivityMatrix&
 Connectivity<1>::itemToItemMatrix<TypeOfItem::face,
                                   TypeOfItem::cell>() const
 {
-#warning in 1d, faces and node are the same
-  return m_face_to_cell_matrix;
+  const auto& face_to_cell_matrix
+      = m_item_to_item_matrix[itemId(TypeOfItem::face)][itemId(TypeOfItem::cell)];
+
+  return face_to_cell_matrix;
 }
 
 template <>
diff --git a/src/mesh/MeshNodeBoundary.hpp b/src/mesh/MeshNodeBoundary.hpp
index a14fdefe027d4ca7d87a86f5d9d721c8dbe7c2bb..56d3d254e314f7e18002f1f3b1624d03acc7218d 100644
--- a/src/mesh/MeshNodeBoundary.hpp
+++ b/src/mesh/MeshNodeBoundary.hpp
@@ -29,9 +29,10 @@ class MeshNodeBoundary
                    const RefFaceList& ref_face_list)
   {
     static_assert(dimension == MeshType::dimension);
+    const auto& face_to_cell_matrix = mesh.connectivity().faceToCellMatrix();
     const Kokkos::View<const unsigned int*>& face_list = ref_face_list.faceList();
     Kokkos::parallel_for(face_list.extent(0), KOKKOS_LAMBDA(const int& l){
-        const auto& face_cells = mesh.connectivity().m_face_to_cell_matrix.rowConst(face_list[l]);
+        const auto& face_cells = face_to_cell_matrix.rowConst(face_list[l]);
         if (face_cells.length>1) {
           std::cerr << "internal faces cannot be used to define mesh boundaries\n";
           std::exit(1);