                     return
                 }
                 
+                Scanner.Lock = true
+                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(2.0) * Int64(NSEC_PER_SEC)), dispatch_get_main_queue(), {
+                    Scanner.Lock = false
+                    
+                    self.navigationController?.popToRootViewControllerAnimated(true)
+                })
+                
                 // If multiple calls get in here due to race conditions it isn't a big deal
                 
-                Scanner.Lock = true
-                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(1.0) * Int64(NSEC_PER_SEC)), dispatch_get_main_queue(), { 
-                    Scanner.Lock = false
-                })
-                
+                Sync.shared.initializeSync(bytes)
                 self.cameraView.cameraOverlaySucess()
                 
-                Sync.shared.initializeSync(bytes)
+                // Will be removed on pop
+                self.loadingView.hidden = false
                 
-                // TODO: Navigate away
             } else {
                 self.cameraView.cameraOverlayError()
             }

    var descriptionLabel: UILabel!
    var cameraAccessButton: UIButton!
    var enterWordsButton: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        enterWordsButton.addTarget(self, action: #selector(SEL_enterWords), forControlEvents: .TouchUpInside)
        view.addSubview(enterWordsButton)
        
        loadingSpinner.startAnimating()
        
        loadingView = UIView()
        loadingView.backgroundColor = UIColor(white: 0.5, alpha: 0.5)
        loadingView.hidden = true
        loadingView.addSubview(loadingSpinner)
        view.addSubview(loadingView)
        
        edgesForExtendedLayout = .None
        
        cameraView.snp_makeConstraints { (make) in
