             }
         }
         
+        CATransaction.begin()
+        CATransaction.setAnimationDuration(0.1)
         let oPath = UIBezierPath(arcCenter: CGPointMake(CGRectGetMidX(backgroundRect.bounds), CGRectGetMidY(backgroundRect.bounds)), radius: 40.0, startAngle: 0, endAngle: CGFloat(M_PI) / 180 * 3.6 * multiplier, clockwise: true)
         outerCircle.path = oPath.CGPath
-        
+        CATransaction.commit()
+        
+        CATransaction.begin()
+        CATransaction.setAnimationDuration(0.1)
         let mPath = UIBezierPath(arcCenter: CGPointMake(CGRectGetMidX(backgroundRect.bounds), CGRectGetMidY(backgroundRect.bounds)), radius: 30.0, startAngle: 0, endAngle: CGFloat(M_PI) / 180 * 3.6 * multiplier, clockwise: true)
         middleCircle.path = mPath.CGPath
-        
+        CATransaction.commit()
+
+        CATransaction.begin()
+        CATransaction.setAnimationDuration(0.1)
         let iPath = UIBezierPath(arcCenter: CGPointMake(CGRectGetMidX(backgroundRect.bounds), CGRectGetMidY(backgroundRect.bounds)), radius: 20.0, startAngle: 0, endAngle: CGFloat(M_PI) / 180 * 3.6 * multiplier, clockwise: true)
         innerCircle.path = iPath.CGPath
+        CATransaction.commit()
     }
     
 }

    }
    
    func createCircles() {
        createOuterCircle()
        createMiddleCircle()
        createInnerCircle()
    }
    
    func createOuterCircle() {

    private var middleCircle = CAShapeLayer()
    private var innerCircle = CAShapeLayer()
    private var multiplier: CGFloat = 1.0
    private var progress: CGFloat = 0.0 {
        didSet {
//            if oldValue <= 100 { incrementMultiplier() }
        }
    }
    private var timer = NSTimer()
    
    override func viewDidLoad() {
