 private typealias ars_config = ARSLineProgressConfiguration
 
 @objc private protocol ARSLoader {
+	var emptyView: UIView { get set }
     var backgroundView: UIVisualEffectView { get set }
     optional var outerCircle: CAShapeLayer { get set }
     optional var middleCircle: CAShapeLayer { get set }

private func ars_hideLoader(loader: ARSLoader?, withCompletionBlock block: (() -> Void)?) {
    guard let loader = loader else { return }
    
    let backgroundView = loader.backgroundView
    
    ars_dispatchOnMainQueue {
        UIView.animateWithDuration(ars_config.backgroundViewDismissAnimationDuration, delay: 0.0, options: .CurveEaseOut, animations: {
            backgroundView.alpha = 0.0
            backgroundView.transform = CGAffineTransformMakeScale(0.9, 0.9)
        }, completion: { _ in block?() })
    }
    


private final class ARSStatus: ARSLoader {
    
	@objc var emptyView = UIView()
    @objc var backgroundView: UIVisualEffectView
    
    init() {
