             make.top.equalTo(self.cameraAccessButton.snp_bottom).offset(8)
             make.centerX.equalTo(self.view)
         }
+        
+        loadingView.snp_makeConstraints { make in
+            make.margins.equalTo(cameraView.snp_margins)
+        }
+        
+        loadingSpinner.snp_makeConstraints { make in
+            make.center.equalTo(loadingSpinner.superview!)
+        }
     }
     
     func SEL_cameraAccess() {

                    return
                }
                
                // 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
                })
                
                self.cameraView.cameraOverlaySucess()
                
                Sync.shared.initializeSync(bytes)
                
                // TODO: Navigate away
            } else {
                self.cameraView.cameraOverlayError()
            }

        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
