added missing comparator, fixed serialized size
diff --git a/req/include/req_compactor_impl.hpp b/req/include/req_compactor_impl.hpp
index e2f8ce8..4db9c78 100755
--- a/req/include/req_compactor_impl.hpp
+++ b/req/include/req_compactor_impl.hpp
@@ -219,7 +219,7 @@
   auto other_it = other.begin();
   for (auto it = from; it != to; ++it, ++other_it) new (it) T(conditional_forward<FwdC>(*other_it));
   if (!other.sorted_) std::sort(from, to, C());
-  if (num_items_ > 0) std::inplace_merge(H ? from : begin(), middle, H ? end() : to);
+  if (num_items_ > 0) std::inplace_merge(H ? from : begin(), middle, H ? end() : to, C());
   num_items_ += other.get_num_items();
 }
 
@@ -265,7 +265,6 @@
   const float ssr = section_size_raw_ / sqrt(2);
   const uint32_t ne = nearest_even(ssr);
   if (state_ >= static_cast<uint64_t>(1 << (num_sections_ - 1)) && ne >= req_constants::MIN_K) {
-    //std::cout << "lg weight: " << std::to_string(lg_weight_) << ", num sections: " << std::to_string(num_sections_) << ", new sec size: " << ssr << " -> " << ne << "\n";
     section_size_raw_ = ssr;
     section_size_ = ne;
     num_sections_ <<= 1;
@@ -335,8 +334,7 @@
   size_t size = sizeof(state_) + sizeof(section_size_raw_) + sizeof(lg_weight_) + sizeof(num_sections_) +
       sizeof(uint16_t) + // padding
       sizeof(uint32_t); // num_items
-      sizeof(TT) * num_items_;
-  for (const auto& item: items_) size += serde.size_of_item(item);
+  for (auto it = begin(); it != end(); ++it) size += serde.size_of_item(*it);
   return size;
 }