diff --git a/src/mesh/Connectivity.hpp b/src/mesh/Connectivity.hpp
index dc2e0e890646b6e2a57a2d0e8d27eb1bbb4e1f4a..3ec986e8b710181643bfe02cbfdf8d7c55b52d7c 100644
--- a/src/mesh/Connectivity.hpp
+++ b/src/mesh/Connectivity.hpp
@@ -123,9 +123,10 @@ class Connectivity final : public IConnectivity
 
   friend class ConnectivityComputer;
 
+ public:
   PUGS_INLINE
   const ConnectivityMatrix&
-  _getMatrix(const ItemType& item_type_0, const ItemType& item_type_1) const
+  getMatrix(const ItemType& item_type_0, const ItemType& item_type_1) const final
   {
     const ConnectivityMatrix& connectivity_matrix = m_item_to_item_matrix[itemTId(item_type_0)][itemTId(item_type_1)];
     if (not connectivity_matrix.isBuilt()) {
@@ -135,7 +136,6 @@ class Connectivity final : public IConnectivity
     return connectivity_matrix;
   }
 
- public:
   PUGS_INLINE
   CellValue<const CellType>
   cellType() const
@@ -336,7 +336,7 @@ class Connectivity final : public IConnectivity
   PUGS_INLINE ItemToItemMatrix<source_item_type, target_item_type>
   getItemToItemMatrix() const
   {
-    return ItemToItemMatrix<source_item_type, target_item_type>(_getMatrix(source_item_type, target_item_type));
+    return ItemToItemMatrix<source_item_type, target_item_type>(getMatrix(source_item_type, target_item_type));
   }
 
   PUGS_INLINE
diff --git a/src/mesh/ConnectivityComputer.cpp b/src/mesh/ConnectivityComputer.cpp
index 3c4d1714fb5e7e091acb7c612c21ff025c930edf..7e8b32020843d9a1c8ea5ec1077dc34135e2dd88 100644
--- a/src/mesh/ConnectivityComputer.cpp
+++ b/src/mesh/ConnectivityComputer.cpp
@@ -15,7 +15,7 @@ ConnectivityComputer::computeConnectivityMatrix(const ConnectivityType& connecti
 {
   ConnectivityMatrix item_to_child_item_matrix;
   if (connectivity.isConnectivityMatrixBuilt(child_item_type, item_type)) {
-    const ConnectivityMatrix& child_to_item_matrix = connectivity._getMatrix(child_item_type, item_type);
+    const ConnectivityMatrix& child_to_item_matrix = connectivity.getMatrix(child_item_type, item_type);
 
     std::cout << "computing connectivity " << itemName(item_type) << " -> " << itemName(child_item_type) << '\n';
 
@@ -58,7 +58,7 @@ ConnectivityComputer::_computeInverse(const ConnectivityMatrix& item_to_child_ma
     size_t i = 0;
     for (const auto& [child_item_id, item_vector] : child_to_item_vector_map) {
       if (child_item_id != i) {
-        throw NotImplementedError("sparse item numerotation NIY\n");
+        throw NotImplementedError("sparse item numerotation");
       }
       ++i;
     }
diff --git a/src/mesh/IConnectivity.hpp b/src/mesh/IConnectivity.hpp
index 90c49e4d818e6caa6414992e9ebaf7bdf46f15cc..def3475c386a3e3b321ea640cdf378456f39fac6 100644
--- a/src/mesh/IConnectivity.hpp
+++ b/src/mesh/IConnectivity.hpp
@@ -9,16 +9,15 @@
 
 class IConnectivity : public std::enable_shared_from_this<IConnectivity>
 {
- protected:
+ public:
   template <typename DataType, typename ItemOfItem, typename ConnectivityPtr>
   friend class SubItemValuePerItem;
 
   template <typename DataType, typename ItemOfItem, typename ConnectivityPtr>
   friend class SubItemArrayPerItem;
 
-  virtual const ConnectivityMatrix& _getMatrix(const ItemType& item_type_0, const ItemType& item_type_1) const = 0;
+  virtual const ConnectivityMatrix& getMatrix(const ItemType& item_type_0, const ItemType& item_type_1) const = 0;
 
- public:
   virtual size_t dimension() const = 0;
 
   std::shared_ptr<const IConnectivity>
diff --git a/src/mesh/SubItemArrayPerItem.hpp b/src/mesh/SubItemArrayPerItem.hpp
index 96a8edb56a1a2890e76128ab652ab7d0100b9201..318063f8a6ebf8485c0411897240b2d9aa92df06 100644
--- a/src/mesh/SubItemArrayPerItem.hpp
+++ b/src/mesh/SubItemArrayPerItem.hpp
@@ -197,7 +197,7 @@ class SubItemArrayPerItem
     static_assert(not std::is_const_v<DataType>, "Cannot allocate SubItemArrayPerItem of const data: only "
                                                  "view is supported");
 
-    ConnectivityMatrix connectivity_matrix = connectivity._getMatrix(item_type, sub_item_type);
+    ConnectivityMatrix connectivity_matrix = connectivity.getMatrix(item_type, sub_item_type);
 
     m_row_map = connectivity_matrix.rowsMap();
     m_values  = Table<std::remove_const_t<DataType>>(connectivity_matrix.numberOfValues(), size_of_arrays);
diff --git a/src/mesh/SubItemValuePerItem.hpp b/src/mesh/SubItemValuePerItem.hpp
index 8201176563de657a8e5af8245c38c0d5572a7531..865238539b3fe4a0ba3e90326c33f39bfa54d683 100644
--- a/src/mesh/SubItemValuePerItem.hpp
+++ b/src/mesh/SubItemValuePerItem.hpp
@@ -192,10 +192,10 @@ class SubItemValuePerItem
     static_assert(not std::is_const_v<DataType>, "Cannot allocate SubItemValuePerItem of const data: only "
                                                  "view is supported");
 
-    ConnectivityMatrix connectivity_matrix = connectivity._getMatrix(item_type, sub_item_type);
+    ConnectivityMatrix connectivity_matrix = connectivity.getMatrix(item_type, sub_item_type);
 
     m_row_map = connectivity_matrix.rowsMap();
-    m_values  = Array<std::remove_const_t<DataType>>(connectivity_matrix.numberOfValues());
+    m_values  = Array<DataType>(connectivity_matrix.numberOfValues());
   }
 
   ~SubItemValuePerItem() = default;