     // MARK: Configs & Animations
     
     func launchTimer() {
-        let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.01 * Double(NSEC_PER_SEC)));
-        dispatch_after(dispatchTime, dispatch_get_main_queue(), {
+        dispatchAfter(0.01) {
             guard let strongSelf = ProgressLoader.weakSelf else { return }
             
             strongSelf.incrementCircleRadius()
             strongSelf.launchTimer()
-        })
+        }
     }
     
     func incrementCircleRadius() {

            Status.drawFail(loader.backgroundView)
        }
        
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(1.25 * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), { () -> Void in
            hideLoader(loader, withCompletionBlock: nil)
        })
    }
    
}

            CATransaction.commit()
        CATransaction.commit()
        
        dispatchAfter(0.9) {
            if config.showSuccessCheckmark {
                Status.show(.Success)
                
                let dismissDelay = 0.5 + max(config.successCircleAnimationDrawDuration, config.checkmarkAnimationDrawDuration)
                
                dispatchAfter(dismissDelay) {
                    hideLoader(currentLoader, withCompletionBlock: currentCompletionBlock)
                }
            } else {
                hideLoader(currentLoader, withCompletionBlock: currentCompletionBlock)
            }
        }
    }
    
    func failedLoading() {
        Status.show(.Fail)
        let dismissDelay = 0.5 + max(config.failCircleAnimationDrawDuration, config.failCrossAnimationDrawDuration)
        
        dispatchAfter(dismissDelay) {
            hideLoader(currentLoader, withCompletionBlock: currentCompletionBlock)
        }
    }
    
    func cleanup() {
