         return animationCount
     }
     
-    private func rotateLayer(count: Double) -> CAShapeLayer {
+    private func nextRotatePath(count: Double) -> UIBezierPath {
         animationCount = count
         
         let start = CGFloat(M_PI_2 * (0 - count))

    
    private func strokeValue(value: CGFloat) {
        if pathLayer == nil {
            let shapeLayer = rotateLayer(0)
            indicatorView.layer.addSublayer(shapeLayer)
            
            pathLayer = shapeLayer
        }
        
        let anim = stroke(fromValue: 0, toValue: value)
        pathLayer?.addAnimation(anim, forKey: Me.ExpandAnimationKey)
    }
    
    private func stroke(#fromValue: CGFloat, toValue: CGFloat) -> CAPropertyAnimation? {
        let anim = CAKeyframeAnimation(keyPath: "strokeEnd")
        anim.duration = 0
        anim.repeatCount = HUGE
        anim.keyTimes = [0, 0]
        anim.values = [fromValue, toValue]
        anim.fillMode = kCAFillModeBackwards
        return anim
    }
}

        
        return shapeLayer
    }
    
    private func nextStrokeLayer(count: Double) -> CAShapeLayer {
        let shapeLayer = rotateLayer()
        shapeLayer.path = nextRotatePath(count).CGPath
        
        return shapeLayer
    }
}

