         
         let displayLink = CADisplayLink(target: self, selector: #selector(update(displayLink:)))
         displayLink.preferredFramesPerSecond = 60
-        
-        // let displayLink = CADisplayLink(target: self, selector: #selector(update))
         displayLink.add(to: RunLoop.main, forMode: .defaultRunLoopMode)
-        // displayLink.add(to: RunLoop.main, forMode: .UITrackingRunLoopMode)
-        // displayLink.add(to: RunLoop.main, forMode: .commonModes)
         
         animatorLinear.addCompletion {
             _ in

    let rightArm = CAShapeLayer()
    let armsConnection = CAShapeLayer()
    let handleSize : CGFloat = 8
    let animationDuration : TimeInterval = 1
    let padding : CGFloat = 100
    
    let leftArmBall = UIView()

        fourthAnimation.fillMode = kCAFillModeBoth
        fourthAnimation.isRemovedOnCompletion = false
        secondBridgeBall.layer.add(fourthAnimation, forKey:fourthAnimation.keyPath)
        
        let fifthBridgePath = UIBezierPath()
        fifthBridgePath.move(to: padded(startPoint))
        fifthBridgePath.addCurve(to: padded(endPoint), controlPoint1: padded(controlPoint1), controlPoint2: padded(controlPoint2))
        
        let fifthAnimation = CAKeyframeAnimation(keyPath: "position")
        fifthAnimation.path = fifthBridgePath.cgPath
        fifthAnimation.duration = animationDuration
        fifthAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
        fifthAnimation.fillMode = kCAFillModeBoth
        fifthAnimation.isRemovedOnCompletion = false
        thirdBridgeBall.layer.add(fifthAnimation, forKey:fifthAnimation.keyPath)
        
        let strokeAnimation = CABasicAnimation(keyPath: "strokeEnd")
        strokeAnimation.fromValue = 0.0
        strokeAnimation.toValue = 1.0
        strokeAnimation.duration = animationDuration
        strokeAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
        strokeAnimation.fillMode = kCAFillModeBoth
        strokeAnimation.isRemovedOnCompletion = false
        joinBezier.add(strokeAnimation, forKey:strokeAnimation.keyPath)
    }
    
    func padded(_ point: CGPoint) -> CGPoint {
