     }
 
     public func stopMonitoring() throws {
+        //Ensuring we have a camera
+        guard let camera = camera else {
+            throw BoumBoumError.CameraUnavailable
+        }
+
         //Ensuring we're running
         guard state == .Running else {
             throw BoumBoumError.AlreadyStopped

    }

    public let session: AVCaptureSession
    public let camera: AVCaptureDevice
    public weak var delegate: BoumBoumDelegate?

    public private(set) var state = State.Stopped

        videoOutput.videoSettings = [
            kCVPixelBufferPixelFormatTypeKey: NSNumber(unsignedInt: kCVPixelFormatType_32BGRA)
        ]
        return videoOutput
    }

