     
     private func setRippleLayer() {
         setRippleLayerPosition()
-        rippleLayer.opacity    = 0
+        rippleLayer.opacity = 0
         superLayer.addSublayer(rippleLayer)
 
         subRippleLayer.opacity = 0

    
    private func setBorderAnimation() {
        setBorderColorAnimation()
        setBorderWidthAnimation(0.0, toValue: AnimationConstants.borderWidth)
    }
    
    private func setBorderWithShadowAnimation() {
        setBorderColorAnimation()
        setShadowAnimation(0.0, toValue: AnimationConstants.shadowOpacity)
        setBorderWidthAnimation(0.0, toValue: AnimationConstants.borderWidth)
    }
    
    private func setBorderColorAnimation() {
        borderColorAnimtion = CABasicAnimation(keyPath: AnimationKeyPath.borderColor.rawValue)
        borderColorAnimtion.fromValue = UIColor.clearColor().CGColor
        borderColorAnimtion.toValue   = animationBorderColor.CGColor
    }
    
    private func setBorderWidthAnimation(fromValue: CGFloat, toValue: CGFloat) {
        borderWidthAnimation = CABasicAnimation(keyPath: AnimationKeyPath.borderWidth.rawValue)
        borderWidthAnimation.fromValue = fromValue
        borderWidthAnimation.toValue   = toValue
    }
    
    private func setShadowAnimation(fromValue: CGFloat, toValue: CGFloat) {
        shadowAnimation = CABasicAnimation(keyPath: AnimationKeyPath.shadowOpacity.rawValue)
        shadowAnimation.fromValue = fromValue
        shadowAnimation.toValue   = toValue
    }
    
    private func animateBorderOrBorderWithShadow() {

        superLayer.masksToBounds   = false
        superLayer.backgroundColor = backgroundColor.CGColor
        groupAnimation.animations?.append(shadowAnimation)
        superLayer.addAnimation(groupAnimation, forKey: nil)
    }
    
    private func animateBackground() {
        let type: AnimationType = .backgroundColor
        backgroundColorAnimation = CABasicAnimation(keyPath: type.keyPath)
        backgroundColorAnimation.fromValue      = type.fromValue
        backgroundColorAnimation.toValue        = animationBackgroundColor.CGColor
        backgroundColorAnimation.duration       = animationDuration
        backgroundColorAnimation.autoreverses   = true
        backgroundColorAnimation.repeatCount    = AnimationConstants.repeatCount
        backgroundColorAnimation.timingFunction = animationTimingFunction.timingFunction
        superLayer.addAnimation(backgroundColorAnimation, forKey: nil)
    }
    
    private func animateText() {
        textColorAnimation = CABasicAnimation(keyPath: AnimationType.foregroundColor.keyPath)
        textColorAnimation.duration            = animationDuration
        textColorAnimation.autoreverses        = true
        textColorAnimation.repeatCount         = AnimationConstants.repeatCount
