             if indexesToRemove.contains(index) {
                 distanceDelta += row.rowHeight
 
-                animator.addAnimation(animation: {
+                animator.addAnimations {
                     row.view.alpha = 0
                     self.layoutIfNeeded()
-                })
-
-                animator.addCompletion {
+                }
+
+                animator.addCompletion { (_) in
+                    print("****** Completion del remove index: ", index)
+                    self.currentAnimator = nil
                     row.view.removeFromSuperview()
                     self.rows.remove(at: index)
-                    self.updateAllRows()
+                    self.updateAllRows(newData: newValue)
                 }
             }
 
             if !row.data.isTotal {
-                animator.addAnimation(animation: {
+                animator.addAnimations {
                     row.constraint.constant += distanceDelta
                     self.layoutIfNeeded()
-                })
-            }
-        }
-
-//        if let currentAnimator = currentAnimator {
-//
-//        } else {
-//            animator.animate()
-//        }
-//        self.currentAnimator = animator
-//
-//        animator.addCompletion {
-//            self.currentAnimator = nil
-//        }
-    }
-
-    func addSummaryRows(animated: Bool) {
-        let rowsToAdd = self.data.count - oldData.count
+                }
+            }
+        }
+
+        if let currentAnimator = self.currentAnimator {
+            currentAnimator.stopAnimation(true)
+            print("****** Stop Animation en el remove")
+        }
+        self.currentAnimator = animator
+        animator.startAnimation()
+    }
+
+    func addSummaryRows(oldValue: [OneTapHeaderSummaryData], newValue: [OneTapHeaderSummaryData], animated: Bool) {
+        let rowsToAdd = newValue.count - oldValue.count
         var newRowsData: [OneTapHeaderSummaryData] = []
 
         for index in 1...rowsToAdd {
-            newRowsData.append(self.data.reversed()[index])
-        }
-
-        var animator = PXAnimator(duration: animated ? 0.5 : 0.0, dampingRatio: 1)
+            newRowsData.append(newValue[index])
+        }
+
+        let animator = UIViewPropertyAnimator(duration: animated ? 0.5 : 0.0, dampingRatio: 1, animations: nil)
+        animator.isInterruptible = true
 
         var distanceDelta: CGFloat = 0
 

        self.backgroundColor = ThemeManager.shared.navigationBar().backgroundColor

        var offset: CGFloat = 0
        for row in self.data.reversed() {
            let rowView = self.getSummaryRowView(with: row)
            let margin = rowView.getRowMargin()


        }
    }

    var currentAnimator: UIViewPropertyAnimator?

    init(data: [OneTapHeaderSummaryData] = [], delegate: PXOneTapSummaryProtocol) {
        self.data = data.reversed()
        self.delegate = delegate
        super.init()
        render()
