     private let ExpandAnimationKey = "expandAnimation"
     private let ContractAnimationKey = "contractAnimation"
     
+    private var indicatorView: UIView
     private var animationCount: CGFloat = 0
     private var pathLayer: CAShapeLayer? {
         willSet {

    public var intervalAnimationsHandler: ((SpringIndicator) -> Void)?
    
    public override init(frame: CGRect) {
        super.init(frame: frame)
        
        backgroundColor = UIColor.clearColor()
    }
    
    public required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
    
    private func incrementAnimationCount() -> CGFloat {

        anim.repeatCount = HUGE
        anim.fromValue = 0
        anim.toValue = M_PI * 2
        indicatorView.layer.addAnimation(anim, forKey: LotateAnimationKey)
        
        nextAnimation()
    }
    
    public func stopAnimation() {
        indicatorView.layer.removeAnimationForKey(LotateAnimationKey)
        pathLayer = nil
    }
    
    private func nextAnimation() {
        intervalAnimationsHandler?(self)
        
        if indicatorView.layer.animationForKey(LotateAnimationKey) == nil {
            return
        }
        
        let shapeLayer = rotateLayer()
        indicatorView.layer.addSublayer(shapeLayer)
        
        pathLayer = shapeLayer
        
