           resetProgressLayer()
           CATransaction.commit()
           
-          
-          
           buttonState = .Small
-          
-          
+        
+          // FIXME: remove this method call to disable autoanimation when button pressed
           animate()
-        }
-      }
-      if name == "makeOriginal" {
-        if flag == true {
-          let targetLayer: CALayer = anim.valueForKey("layer") as! CALayer
-          
-          CATransaction.begin()
-          CATransaction.setDisableActions(true)
-          targetLayer.backgroundColor = originalColor
-          targetLayer.bounds = originalBounds
-          targetLayer.cornerRadius = originalCornerRadius
-          targetLayer.borderColor = originalBorderColor
-          CATransaction.commit()
-          
-          buttonState = .Original
-        }
+      }
+      
+      if name == "makeOriginal" && flag == true {
+        let targetLayer: CALayer = anim.valueForKey("layer") as! CALayer
+        
+        CATransaction.begin()
+        CATransaction.setDisableActions(true)
+        targetLayer.backgroundColor = originalColor
+        targetLayer.bounds = originalBounds
+        targetLayer.cornerRadius = originalCornerRadius
+        targetLayer.borderColor = originalBorderColor
+        CATransaction.commit()
+        
+        buttonState = .Original
       }
     }
   }

      changeButtonColorTo(originalColor)
      return false
    }
    return true
  }
  

  
  // MARK: - Public Properties
  
  var originalCornerRadius: CGFloat = 0
  var originalColor: CGColorRef = UIColor(red:0.14, green:0.6, blue:0.79, alpha:1).CGColor
  var originalBorderColor: CGColorRef = UIColor(red:0.14, green:0.6, blue:0.79, alpha:1).CGColor
  
  var smallCornerRadius: CGFloat = 0
  var smallColor: CGColorRef = UIColor.whiteColor().CGColor
  var smallBorderColor: CGColorRef = UIColor(white: 0.9, alpha: 1).CGColor

  var progress: CGFloat = 0.0 {
    didSet {
      if progress < 0.0 {
