 ///   necessary and then ensuring that `completeOperation()` is called; or
 ///   override `cancel` method, calling `super.cancel()` and then cleaning-up
 ///   and ensuring `completeOperation()` is called.
-class ConcurrentOperation: NSOperation {
+public class ConcurrentOperation: NSOperation {
    
-    override var asynchronous: Bool {
+    override public var asynchronous: Bool {
         return true
     }
     
     private var _executing: Bool = false
-    override var executing: Bool {
+    override public var executing: Bool {
         get {
             return _executing
         }

    }
    
    private var _finished: Bool = false;
    override var finished: Bool {
        get {
            return _finished
        }

        self.finished  = true
    }
    
    override public func start() {
        if self.cancelled {
            self.finished = true
            return
