 }
 
 /// The kind of serial operation queue the AsyncClosuresOperation should manage.
-public enum AsyncClosuresQueueKind {
+@objc public enum AsyncClosuresQueueKind: Int {
     /// Use a mainQueue operation queue
     case Main
     /// Create a background queue

    
    ///:queueKind: Whether the closures should execute on the mainQueue or a background queue.
    ///:returns: A new AsyncClosuresOperation
    public init(queueKind: AsyncClosuresQueueKind) {
        closureOpQ = queueKind.serialOperationQueueForKind()
        super.init()
    }

    /// :asyncClosure: The AsyncClosure.
    /// :see: addAsyncClosure.
    
    @objc public convenience init(queueKind: AsyncClosuresQueueKind, asyncClosure: AsyncClosure) {
        self.init(queueKind: queueKind)
        addAsyncClosure(asyncClosure)
    }
    
    @objc class public func asyncClosuresOperation(queueKind: AsyncClosuresQueueKind, asyncClosure: AsyncClosure) -> AsyncClosuresOperation {
        return AsyncClosuresOperation(queueKind: queueKind, asyncClosure: asyncClosure)
    }
    
