         thumbSignView2.layer.speed = 0;
         backgroundView.layer.speed = 0;
         
-        thumbSignView1.layer.addAnimation(animationGroup1, forKey: "tickAnimation")
-        thumbSignView2.layer.addAnimation(animationGroup2, forKey: "tickAnimation")
-        backgroundView.layer.addAnimation(thumbAnimationGroup, forKey: "thumbAnimation")
+        thumbSignView1.layer.add(animationGroup1, forKey: "tickAnimation")
+        thumbSignView2.layer.add(animationGroup2, forKey: "tickAnimation")
+        backgroundView.layer.add(thumbAnimationGroup, forKey: "thumbAnimation")
     }
     
     internal func endTracking(isOn: Bool) {

private let thumbSignWidth = CGFloat(7)

internal class PMZISwitchAnimatedThumb: UIView {

    // MARK: - Properties -
    // MARK: internal
    internal var animationProgress: CGFloat = 0 {

            return
        }
        isTracking = false
        
        thumbSignView1.layer.timeOffset = animationDuration
        thumbSignView2.layer.timeOffset = animationDuration
        backgroundView.layer.timeOffset = animationDuration
    }
    
    private func setupSignViews() {
        thumbSignView1 = createThumbSignView()
        thumbSignView1.transform = CGAffineTransform(rotationAngle: .pi/4)
        self.addSubview(thumbSignView1);
        
        thumbSignView2 = createThumbSignView()
        thumbSignView2.transform = CGAffineTransform(rotationAngle: -(.pi/4))
        self.addSubview(thumbSignView2);
    }
    
    private func createThumbSignView() -> UIView {
        let thumbSignHeight = self.bounds.height / 2 - thumbSignWidth
        let thumbSignView = UIView(frame: CGRect(x: self.bounds.width / 2 - 4, y: self.bounds.height / 2 - thumbSignHeight / 2, width: thumbSignWidth, height: thumbSignHeight))
        thumbSignView.layer.cornerRadius = thumbSignWidth / 2
        thumbSignView.backgroundColor = .white
        
        return thumbSignView
    }
