     }
     
     //
+    // Hide the spinner(keeping old interface)
+    //
+    public class func hide(completion: (() -> Void)? = nil) {
+        SwiftSpinner.hide(DEFAULT_LEVEL, completion: completion)
+    }
+    
+    //
     // Hide the spinner
     //
-    public class func hide(completion: (() -> Void)? = nil) {
+    public class func hide(level: SpinnerLevel, completion: (() -> Void)? = nil) {
         
         let spinner = SwiftSpinner.sharedInstance
         
-        NSNotificationCenter.defaultCenter().removeObserver(spinner)
-        
-        dispatch_async(dispatch_get_main_queue(), {
-            spinner.showWithDelayBlock = nil
-            spinner.clearTapHandler()
-            
-            if spinner.superview == nil {
-                return
-            }
-            
-            UIView.animateWithDuration(0.33, delay: 0.0, options: .CurveEaseOut, animations: {
-                spinner.alpha = 0.0
-                }, completion: {_ in
-                    spinner.alpha = 1.0
-                    spinner.removeFromSuperview()
-                    spinner.titleLabel.font = spinner.defaultTitleFont
-                    spinner.titleLabel.text = nil
-                    
-                    completion?()
+        if spinner.lastLevel <= level {
+            
+            spinner.lastLevel = DEFAULT_LEVEL
+            
+            NSNotificationCenter.defaultCenter().removeObserver(spinner)
+            
+            dispatch_async(dispatch_get_main_queue(), {
+                spinner.showWithDelayBlock = nil
+                spinner.clearTapHandler()
+                
+                if spinner.superview == nil {
+                    return
+                }
+                
+                UIView.animateWithDuration(0.33, delay: 0.0, options: .CurveEaseOut, animations: {
+                    spinner.alpha = 0.0
+                    }, completion: {_ in
+                        spinner.alpha = 1.0
+                        spinner.removeFromSuperview()
+                        spinner.titleLabel.font = spinner.defaultTitleFont
+                        spinner.titleLabel.text = nil
+                        
+                        completion?()
+                })
+                
+                spinner.animating = false
             })
-            
-            spinner.animating = false
-        })
+        }
     }
     
     //

        tapHandler?()
    }
}

    // Show the spinner activity on screen, after delay. If new call to show,
    // showWithDelay or hide is maked before execution this call is discarded
    //
    public class func showWithDelay(delay: Double, title: String, animated: Bool = true, level: SpinnerLevel = .Normal) -> SwiftSpinner {
        let spinner = SwiftSpinner.sharedInstance
        
        if spinner.lastLevel <= level {
            
            spinner.lastLevel = level
            
            spinner.showWithDelayBlock = {
                SwiftSpinner.show(title, animated: animated)
            }
            
            spinner.delay(seconds: delay) { [weak spinner] in
                if let spinner = spinner {
                    spinner.showWithDelayBlock?()
                }
            }
        }
        
