        CATransaction.begin()
        CATransaction.setDisableActions(true)
        snakeLayer.strokeStart = 0
        snakeLayer.strokeEnd = snakeLengthByCycle / CGFloat(cycleCount) * progress
        CATransaction.commit()
    }
    
    fileprivate let AnimationGroupKey = "SnakePathAnimations"
    func startAnimating() {
        animating = true
        snakeLayer.isHidden = false
        
        snakeLayer.strokeStart = 0