diff --git a/src/mesh/ConnectivityDispatcher.cpp b/src/mesh/ConnectivityDispatcher.cpp
index 6b73d967d4d4fcb37e1376bf1d9306826d25fb1f..1502bed705b252d9be19e1783ab7719488451c8c 100644
--- a/src/mesh/ConnectivityDispatcher.cpp
+++ b/src/mesh/ConnectivityDispatcher.cpp
@@ -29,7 +29,7 @@ ConnectivityDispatcher<Dimension>::_buildNewOwner()
     using ItemId = ItemIdT<item_type>;
     ItemValue<int, item_type> item_new_owner(m_connectivity);
     parallel_for(
-      item_new_owner.size(), PUGS_LAMBDA(const ItemId& l) {
+      item_new_owner.numberOfItems(), PUGS_LAMBDA(const ItemId& l) {
         const auto& item_to_cell = item_to_cell_matrix[l];
         CellId Jmin              = item_to_cell[0];
 
@@ -268,7 +268,7 @@ ConnectivityDispatcher<Dimension>::_buildNumberOfSubItemPerItemToRecvByProc()
 
   using ItemId = ItemIdT<SubItemOfItemT::item_type>;
   parallel_for(
-    number_of_sub_item_per_item.size(),
+    number_of_sub_item_per_item.numberOfItems(),
     PUGS_LAMBDA(const ItemId& j) { number_of_sub_item_per_item[j] = item_to_sub_item_matrix[j].size(); });
 
   this->_dispatchedInfo<SubItemOfItemT>().m_number_of_sub_item_per_item_to_recv_by_proc =
diff --git a/src/mesh/ItemValue.hpp b/src/mesh/ItemValue.hpp
index 32ce896e5f865514245d59dc823d57e6cb3852c5..5115166b8d0cb9cd02f704fe2f5e58ba9a6c6bd8 100644
--- a/src/mesh/ItemValue.hpp
+++ b/src/mesh/ItemValue.hpp
@@ -67,7 +67,7 @@ class ItemValue
 
   PUGS_INLINE
   size_t
-  size() const noexcept(NO_ASSERT)
+  numberOfItems() const noexcept(NO_ASSERT)
   {
     Assert(this->isBuilt());
     return m_values.size();
diff --git a/src/mesh/ItemValueUtils.hpp b/src/mesh/ItemValueUtils.hpp
index 831564e9caeebbd94e701e8eb7d123dbee911570..c307ce4d6010e9ce0d40b4afdcb2ab4466e1d009 100644
--- a/src/mesh/ItemValueUtils.hpp
+++ b/src/mesh/ItemValueUtils.hpp
@@ -32,7 +32,7 @@ min(const ItemValue<DataType, item_type, ConnectivityPtr>& item_value)
     operator data_type()
     {
       data_type reduced_value;
-      parallel_reduce(m_item_value.size(), *this, reduced_value);
+      parallel_reduce(m_item_value.numberOfItems(), *this, reduced_value);
       return reduced_value;
     }
 
@@ -124,7 +124,7 @@ max(const ItemValue<DataType, item_type, ConnectivityPtr>& item_value)
     operator data_type()
     {
       data_type reduced_value;
-      parallel_reduce(m_item_value.size(), *this, reduced_value);
+      parallel_reduce(m_item_value.numberOfItems(), *this, reduced_value);
       return reduced_value;
     }
 
@@ -217,7 +217,7 @@ sum(const ItemValue<DataType, item_type>& item_value)
     operator data_type()
     {
       data_type reduced_value;
-      parallel_reduce(m_item_value.size(), *this, reduced_value);
+      parallel_reduce(m_item_value.numberOfItems(), *this, reduced_value);
       return reduced_value;
     }
 
diff --git a/src/mesh/Synchronizer.hpp b/src/mesh/Synchronizer.hpp
index d23634ac3db35a026b50cb4bd0f8c040c80aa4cd..209ea0f4702430df0b93e3ef662ffc30c82300fd 100644
--- a/src/mesh/Synchronizer.hpp
+++ b/src/mesh/Synchronizer.hpp
@@ -66,7 +66,7 @@ class Synchronizer
     auto& requested_item_info = this->_getRequestedItemInfo<item_type>();
     requested_item_info       = [&]() {
       std::vector<std::vector<ItemId>> requested_item_vector_info(parallel::size());
-      for (ItemId item_id = 0; item_id < item_owner.size(); ++item_id) {
+      for (ItemId item_id = 0; item_id < item_owner.numberOfItems(); ++item_id) {
         if (const size_t owner = item_owner[item_id]; owner != parallel::rank()) {
           requested_item_vector_info[owner].emplace_back(item_id);
         }
@@ -105,7 +105,7 @@ class Synchronizer
     parallel::exchange(requested_item_number_list_by_proc, provided_item_number_list_by_rank);
 
     std::map<int, ItemId> item_number_to_id_correspondance;
-    for (ItemId item_id = 0; item_id < item_number.size(); ++item_id) {
+    for (ItemId item_id = 0; item_id < item_number.numberOfItems(); ++item_id) {
       item_number_to_id_correspondance[item_number[item_id]] = item_id;
     }
 
diff --git a/src/output/GnuplotWriter1D.cpp b/src/output/GnuplotWriter1D.cpp
index b25ca82accf3189fbdab58ca4161101647cb463d..79423d5da05b699b995d472313e134a8c9dd4a52 100644
--- a/src/output/GnuplotWriter1D.cpp
+++ b/src/output/GnuplotWriter1D.cpp
@@ -182,7 +182,7 @@ GnuplotWriter1D::_writeItemValues(const std::shared_ptr<const MeshType>& mesh,
         if constexpr (ItemValueT::item_t == item_type) {
           using DataT  = std::decay_t<typename ItemValueT::data_type>;
           size_t index = 0;
-          for (ItemId item_id = 0; item_id < item_value.size(); ++item_id) {
+          for (ItemId item_id = 0; item_id < item_value.numberOfItems(); ++item_id) {
             if (is_owned[item_id]) {
               if constexpr (std::is_arithmetic_v<DataT>) {
                 values[number_of_columns * index + column_number] = item_value[item_id];
diff --git a/src/output/VTKWriter.cpp b/src/output/VTKWriter.cpp
index 5da7dd6fbff851525be08791807ac138bd31ffb3..f65a4acfa89830c54e131539252e80a08de67ff3 100644
--- a/src/output/VTKWriter.cpp
+++ b/src/output/VTKWriter.cpp
@@ -88,9 +88,9 @@ class VTKWriter::SerializedDataList
   void
   add(const ItemValue<DataT, item_type, ConnectivityT>& item_value)
   {
-    Array<std::remove_const_t<DataT>> array(item_value.size());
+    Array<std::remove_const_t<DataT>> array(item_value.numberOfItems());
     parallel_for(
-      item_value.size(), PUGS_LAMBDA(ItemIdT<item_type> item_id) { array[item_id] = item_value[item_id]; });
+      item_value.numberOfItems(), PUGS_LAMBDA(ItemIdT<item_type> item_id) { array[item_id] = item_value[item_id]; });
 
     this->add(array);
   }
diff --git a/tests/test_ItemValue.cpp b/tests/test_ItemValue.cpp
index 53201661dfbfaca685847e03a58c690126cbf92c..e5d56e66936d92f04a76ef1cb2303123d59fa858 100644
--- a/tests/test_ItemValue.cpp
+++ b/tests/test_ItemValue.cpp
@@ -46,9 +46,9 @@ TEST_CASE("ItemValue", "[mesh]")
     FaceValue<int> face_value{connectivity};
     CellValue<int> cell_value{connectivity};
 
-    REQUIRE(edge_value.size() == node_value.size());
-    REQUIRE(face_value.size() == node_value.size());
-    REQUIRE(cell_value.size() + 1 == node_value.size());
+    REQUIRE(edge_value.numberOfItems() == node_value.numberOfItems());
+    REQUIRE(face_value.numberOfItems() == node_value.numberOfItems());
+    REQUIRE(cell_value.numberOfItems() + 1 == node_value.numberOfItems());
   }
 
   SECTION("2D")
@@ -71,7 +71,7 @@ TEST_CASE("ItemValue", "[mesh]")
     EdgeValue<int> edge_value{connectivity};
     FaceValue<int> face_value{connectivity};
 
-    REQUIRE(edge_value.size() == face_value.size());
+    REQUIRE(edge_value.numberOfItems() == face_value.numberOfItems());
   }
 
   SECTION("3D")
@@ -99,7 +99,7 @@ TEST_CASE("ItemValue", "[mesh]")
 
     CellValue<size_t> cell_value{connectivity};
 
-    Array<size_t> values{cell_value.size()};
+    Array<size_t> values{cell_value.numberOfItems()};
     for (size_t i = 0; i < values.size(); ++i) {
       values[i] = i;
     }
@@ -194,7 +194,7 @@ TEST_CASE("ItemValue", "[mesh]")
 
       CellValue<size_t> cell_value{connectivity};
 
-      Array<size_t> values{3 + cell_value.size()};
+      Array<size_t> values{3 + cell_value.numberOfItems()};
       REQUIRE_THROWS_AS(cell_value = values, AssertError);
     }
   }
diff --git a/tests/test_ItemValueUtils.cpp b/tests/test_ItemValueUtils.cpp
index 73989f3d0c60eca7ae9d59b223a564b8d39ac06a..b20bc94cea9df32e2332d284a180b5f4f4157c0a 100644
--- a/tests/test_ItemValueUtils.cpp
+++ b/tests/test_ItemValueUtils.cpp
@@ -187,7 +187,7 @@ TEST_CASE("ItemValueUtils", "[mesh]")
 
       const size_t global_number_of_cells = [&] {
         size_t number_of_cells = 0;
-        for (CellId cell_id = 0; cell_id < cell_is_owned.size(); ++cell_id) {
+        for (CellId cell_id = 0; cell_id < cell_is_owned.numberOfItems(); ++cell_id) {
           number_of_cells += cell_is_owned[cell_id];
         }
         return parallel::allReduceSum(number_of_cells);
@@ -208,7 +208,7 @@ TEST_CASE("ItemValueUtils", "[mesh]")
 
       const size_t global_number_of_faces = [&] {
         size_t number_of_faces = 0;
-        for (FaceId face_id = 0; face_id < face_is_owned.size(); ++face_id) {
+        for (FaceId face_id = 0; face_id < face_is_owned.numberOfItems(); ++face_id) {
           number_of_faces += face_is_owned[face_id];
         }
         return parallel::allReduceSum(number_of_faces);
@@ -229,7 +229,7 @@ TEST_CASE("ItemValueUtils", "[mesh]")
 
       const size_t global_number_of_nodes = [&] {
         size_t number_of_nodes = 0;
-        for (NodeId node_id = 0; node_id < node_is_owned.size(); ++node_id) {
+        for (NodeId node_id = 0; node_id < node_is_owned.numberOfItems(); ++node_id) {
           number_of_nodes += node_is_owned[node_id];
         }
         return parallel::allReduceSum(number_of_nodes);