         
         if let parserBridge = parserBridge {
             
-            rawDataLabel.text = "Raw Data"
-            let atomBytes = parserBridge.getAtomBytes(atom!)
-            if atomBytes != nil {
-                rawData.text = atomBytes
+            showActivityIndicator()
+            
+            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
+                let atomBytes = parserBridge.getAtomBytes(self.atom!)
+            
+                dispatch_async(dispatch_get_main_queue()) {
+                    self.removeActivityIndicator()
+                    if atomBytes != nil {
+                        self.rawDataLabel.text = "Raw Data"
+                        self.rawData.text = atomBytes
+                    }
+                }
             }
         }
         

    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var stackView: UIStackView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        

            ),
            dispatch_get_main_queue(), closure)
    }
    
    func showActivityIndicator() {
        dispatch_async(dispatch_get_main_queue()) {
            self.activityView = UIActivityIndicatorView(activityIndicatorStyle: .Gray)
            self.activityView!.backgroundColor = UIColor.grayColor().colorWithAlphaComponent(0.5)
            self.activityView!.center = self.view.center
            self.activityView!.frame = self.view.frame
            
            self.view.addSubview(self.activityView!)
            self.activityView!.startAnimating()
        }
    }
    
    func removeActivityIndicator() {
        dispatch_async(dispatch_get_main_queue()) {
            if let activityView = self.activityView {
                activityView.stopAnimating()
                activityView.removeFromSuperview()
            }
        }
    }
}
