     
     public final private(set) var identifier = UUID().uuidString
     public final var queueForWork: DispatchQueue = DispatchQueue(label: "YakkaWorkQueue", attributes: .concurrent)
-    public final var queueForFeedback = DispatchQueue.main
+    public final var queueForStartFeedback = DispatchQueue.main
+    public final var queueForProgressFeedback = DispatchQueue.main
+    public final var queueForFinishFeedback = DispatchQueue.main
     public final private(set) var currentState = State.notStarted
     
     private let _internalQueue = DispatchQueue(label: "YakkaTaskInternal")

        
        // If needed, provide feedback about the fact we've started
        if self._startHandlers.count > 0 {
            queueForFeedback.async {
                for feedback in self._startHandlers {
                    feedback()
                }

    
    private func reportProgress(_ percent: Float) {
        if self._progressHandlers.count > 0 {
            self.queueForProgressFeedback.async {
                for feedback in self._progressHandlers {
                    feedback(percent)
                }
