         }
     }
 
+    /// The execute function required by Operation
     public override func execute() {
         determineState { response in
             self.completion(response)


extension Capability.VoidStatus: Equatable { }

public func ==(a: Capability.VoidStatus, b: Capability.VoidStatus) -> Bool {
    return true
}


    let capability: Capability

    /**
     Initialize the condition using a capability. For example
     
     ```swift
     let myOperation = MyOperation() // etc etc

     // Present the user with a permission dialog only if the authorization
     // status has not yet been determined.
     // If previously granted - operation will be executed with no dialog.
     // If previously denied - operation will fail with 
     // CapabilityError<Capability.Location>.AuthorizationNotGranted
     
     myOperation.addCondition(AuthorizedFor(Capability.Location(.WhenInUse)))
     ```
     
     - parameter capability: the Capability.
    */
    public init(_ capability: Capability) {
        self.capability = capability
        self.name = capability.name
    }

    /// Returns an Authorize operation as a dependency
    public func dependencyForOperation(operation: Operation) -> NSOperation? {
        return Authorize(capability)
    }

    /// Evaluated the condition
    public func evaluateForOperation(operation: Operation, completion: OperationConditionResult -> Void) {

        if !capability.isAvailable() {
