     public var didFinishCapturingImage: ((image: UIImage) -> Void)?
     
     public var cameraOverlayView: UIView?
-    public var flashModel:AVCaptureFlashMode = .Auto {
+    public var flashModel:AVCaptureFlashMode! {
         didSet {
             self.updateFlashButton()
             self.updateFlashMode()
+            self.updateFlashModelToUserDefautls(self.flashModel)
         }
     }
     

    // MARK: - Handles Flash
    
    internal func switchFlashMode() {
        switch self.flashModel {
        case .Auto:
            self.flashModel = .Off
        case .On:

        }
    }
    
    private func flashModelFromUserDefaults() -> AVCaptureFlashMode {
        let rawValue = NSUserDefaults.standardUserDefaults().integerForKey("DKCamera.flashModel")
        return AVCaptureFlashMode(rawValue: rawValue)!
    }
    
    private func updateFlashModelToUserDefautls(flashModel: AVCaptureFlashMode) {
        NSUserDefaults.standardUserDefaults().setInteger(flashModel.rawValue, forKey: "DKCamera.flashModel")
    }
    
    private func updateFlashButton() {
        struct FlashImage {
            
