     // small and loader animation
     func tapButton(){
         
-        if self.loader && self.frame.size == self.loaderMask.frame.size{
-            
+        if self.loader && !self.loaderStatus{
+            
+            self.loaderStatus = true
             self.addAnimationLoader()
             
             DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) {

        
        self.addTarget(self, action: #selector(self.tapButton), for: .touchUpInside)
    }
}

extension AZButton {

        self.frame = self.loaderMask.frame
        self.loaderMask.superview?.addSubview(self)
        self.loaderMask.removeFromSuperview()

        // todo: get animation loader view and then process on the view
        self.animationLoader(width: width, center: center, view: self)
        self.loaderStatus = false
    }
    
    fileprivate func animationLoader(width: CGFloat, center: CGFloat, view: UIView? = nil){
