         animation.onProgressUpdate?(t)
     }
     
-    let layer = animationCache.layerForNode(shape, animation: animation, shouldRenderContent: false)
     layer.path = RenderUtils.toCGPath(fromLocus)
     
     // Stroke

    let fromLocus = morphingAnimation.getVFunc()(0.0)
    let toLocus = morphingAnimation.getVFunc()(animation.autoreverses ? 0.5 : 1.0)
    
    var offset = Point(x: 0.0, y: 0.0)
    if let width = shape.stroke?.width  {
        offset = Point(x: width / 2.0, y: width / 2.0)
    }
    
    // Creating proper animation
    let generatedAnim = pathAnimation(
        from:fromLocus,
        to:toLocus,
        duration: animation.getDuration(),
        offset: offset)
    
    generatedAnim.repeatCount = Float(animation.repeatCount)
    generatedAnim.timingFunction = caTimingFunction(animation.easing)

    }
}

fileprivate func pathAnimation(from:Locus, to: Locus, duration: Double, renderTransform: CGAffineTransform) -> CAAnimation {
    
    var transform = renderTransform
    let fromPath = RenderUtils.toCGPath(from).copy(using: &transform)
    let toPath = RenderUtils.toCGPath(to).copy(using: &transform)
    
    let animation = CABasicAnimation(keyPath: "path")
    animation.fromValue = fromPath
