         }
     }
 
+    var currentAnimator: UIViewPropertyAnimator?
 
     init(data: [OneTapHeaderSummaryData] = [], delegate: PXOneTapSummaryProtocol) {
-        self.data = data
+        self.data = data.reversed()
         self.delegate = delegate
         super.init()
         render()

            if indexesToRemove.contains(index) {
                distanceDelta += row.rowHeight

                animator.addAnimation(animation: {
                    row.view.alpha = 0
                    self.layoutIfNeeded()
                })

                animator.addCompletion {
                    row.view.removeFromSuperview()
                    self.rows.remove(at: index)
                    self.updateAllRows()
                }
            }

            if !row.data.isTotal {
                animator.addAnimation(animation: {
                    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
        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)

        var distanceDelta: CGFloat = 0


        }
    }

    func removeSummaryRows(oldValue: [OneTapHeaderSummaryData], newValue: [OneTapHeaderSummaryData], animated: Bool) {
        let rowsToRemove = oldValue.count - newValue.count
        var indexesToRemove: [Int] = []

        for index in 1...rowsToRemove {
            indexesToRemove.append(index)
        }

        let animator = UIViewPropertyAnimator(duration: animated ? 0.5 : 0.0, dampingRatio: 1, animations: nil)
        animator.isInterruptible = true

        var distanceDelta: CGFloat = 0

