diff --git a/cml/ports/source_adapters.py b/cml/ports/source_adapters.py
index 08fc976b87fa226d231a62f7c81b13f981e2d85d..c9493377f153d8f1130bf416447a991c3483c2dc 100644
--- a/cml/ports/source_adapters.py
+++ b/cml/ports/source_adapters.py
@@ -45,6 +45,7 @@ class PandasBlock:
         self.__data_block = data_block
         self.relatives = relatives
         self.n_cluster = None
+        self.purpose = None
 
     def __str__(self):
         return str(self.__data_block)
@@ -82,6 +83,17 @@ class PandasBlock:
         data_frame["Z"] = labels
         return PandasBlock(data_frame, self.relatives)
 
+    def overlapping_rows(self, block):
+        overlapping = self.__data_block[self.__data_block.isin(block)].dropna(
+            axis=0, how="all"
+        )
+        return self.new_block_from_rows_index(overlapping.indexes)
+
+    def fusion(self, block):
+        return self.new_block_from_rows_index(
+            self.indexes+block.indexes
+        )
+
     @property
     def min_timestamp(self):
         return min(self.__data_block["T"])