diff --git a/tools.py b/tools.py
index 95d05138defc2076b7f23b4040768f3b8e6e3f2f..4d856b1aa2976850d633f803c8f4c227d7328481 100644
--- a/tools.py
+++ b/tools.py
@@ -124,12 +124,15 @@ class Main:
         if len(coord) > 1 and dist_factor is not None:
             coord = dark_ions(img, coord, dist_factor)
 
-        _, old_idx = self.memory.get_value()
+        old_coord = self.memory.get_value()
         self.memory.save_value(coord)
-        coord, new_idx = self.memory.get_value()
+        coord = self.memory.get_value()
+
+        same_coord = _compare_coord(old_coord, coord)
+
         # If idx changes, it means that ion reordered
         reorder_flag = 0
-        if new_idx != old_idx:
+        if not same_coord:
             reorder_flag = 1
             self.count_avg.update_count()
 
@@ -219,8 +222,7 @@ class Memory:
         diff = []
         for i, element in enumerate(self.memory):
             if len(element) == len(value):
-                same_type = all(value[:, 2] == element[:, 2])
-                if same_type:
+                if all(value[:, 2] == element[:, 2]):
                     diff_pos = np.abs(value[:, :2] - element[:, :2])
                     diff.append([i, diff_pos.sum()])
 
@@ -268,9 +270,9 @@ class Memory:
         try:
             max_value = self.memory[self.max_idx]
         except IndexError:
-            max_value = None
+            max_value = np.empty((1, 3))
 
-        return max_value, self.max_idx
+        return max_value
 
 
 class MovingAverage:
@@ -296,6 +298,9 @@ class MovingAverage:
         if len(self.reorder_history) > 60:
             self.reorder_history.pop(0)
         self.moving_avg = self.reorder_history[-1] - self.reorder_history[0]
+        min_val = min(self.reorder_history)
+        self.reorder_history = [i - min_val for i in self.reorder_history]
+        self.reorder_count -= min_val
 
     def update_count(self):
         """
@@ -896,3 +901,16 @@ def _ion_distance(coord):
     dist = np.array(dist)
 
     return dist
+
+
+def _compare_coord(coord1, coord2):
+    same_coord = False
+
+    same_len = len(coord1) == len(coord2)
+    same_type = all(coord1[:, 2] == coord2[:, 2])
+    same_pos = np.abs(coord1[:, :2] - coord2[:, :2]).sum()
+
+    if same_len and same_type and same_pos < 30:
+        same_coord = True
+        
+    return same_coord
\ No newline at end of file