     override func viewDidLoad() {
         super.viewDidLoad()
         
+        // Show Progress HUD
+        SVProgressHUD.showWithStatus("Fetching Data", maskType: .Gradient)
+        
         // Initialize Fetch Request
         let fetchRequest = NSFetchRequest(entityName: "Item")
         

        // Initialize Asynchronous Fetch Request
        let asynchronousFetchRequest = NSAsynchronousFetchRequest(fetchRequest: fetchRequest) { (asynchronousFetchResult) -> Void in
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                self.processAsynchronousFetchResult(asynchronousFetchResult)
            })
        }
        
        do {
            // Execute Asynchronous Fetch Request
            let asynchronousFetchResult = try managedObjectContext.executeRequest(asynchronousFetchRequest)
            
            print(asynchronousFetchResult)
            
        } catch {
            let fetchError = error as NSError

            tableView.reloadData()
        }
    }
    
    // MARK: -
    // MARK: Key Value Observing
    override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
        if keyPath == "completedUnitCount" {
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                if let changes = change, number = changes["new"] {
                    // Create Status
                    let status = "Fetched \(number) Records"
                    
                    // Show Progress HUD
                    SVProgressHUD.setStatus(status)
                }
            })
        }
    }

}
