 import UIKit
 import AVFoundation
 
+/**
+ Possible BoumBoum Errors.
+
+ - AlreadyRunning:                  Means you asked to start monitoring while it already is.
+ - AlreadyStopped:                  Means you asked to stop monitoring while it's not.
+ - CameraUnavailable:               Means the camera isn't available.
+ - TorchModeUnsupported:            Means the torch isn't available - though needed.
+ - CameraLockFailed:                Means the camera lock failed to update the configuration.
+ - CameraDeviceInputCreationFailed: Means the camera device input creation failed.
+ */
 public enum BoumBoumError: ErrorType {
     case AlreadyRunning
     case AlreadyStopped

    // MARK: Output creation
    ////////////////////////////////////////////////////////////////////////////

    private func configuredCameraOutput(delegate: AVCaptureVideoDataOutputSampleBufferDelegate) -> AVCaptureVideoDataOutput {
        let videoOutput = AVCaptureVideoDataOutput()
        let queue = dispatch_queue_create("be.delannoyk.boumboum", nil)

        state = .Running
    }

    /**
     Stops monitoring the heart rate.

     - throws: A `BoumBoumError` if something fails.
     */
    public func stopMonitoring() throws {
        //Ensuring we have a camera
        guard let camera = camera else {
