         }
         
         // Kick it off
-        task.start(using: _workQueue)
+        task.start(using: workQueue)
     }
 }

    /// Queue providing serialization for state changing and other other thread sensitive things
    private let _internalQueue = DispatchQueue(label: "ProductionLineInternal", qos: .background)
    
    /// The GCD queue on which tasks will perform their work
    private let _workQueue: DispatchQueue
    
    
    
    // MARK: - Lifecycle
    
    public init(workQueue: DispatchQueue = DispatchQueue.global(qos: .background), maxConcurrentTasks: Int = 0) {
        _workQueue = workQueue
        self.maxConcurrentTasks = maxConcurrentTasks
    }
    

    /// Whether or not the production line is running / will execute tasks upon adding (and when ready, depending on maxConcurrentTasks)
    public private(set) var isRunning = true
    
    /// The GCD queue on which tasks will perform their work
    public let workQueue: DispatchQueue
    
    
    
    // MARK: - Private variables
