         self.currentState = state
         
         // Now get on the feedback queue to finish up
-        self.queueForFeedback.sync {
-            self._finishHandler?(self.currentState)
+        if self._finishHandlers.count > 0 {
+            self.queueForFeedback.sync {
+                for feedback in self._finishHandlers {
+                    feedback(self.currentState)
+                }
+            }
         }
         
         // Remove ourself from the cache / stop retaining self

    
    private let _internalQueue = DispatchQueue(label: "TaskInternal")
    private var _workToDo: TaskWorkBlock?
    private var _startHandler: (()->())?
    private var _progressHandler: ProgressHandler?
    private var _finishHandler: FinishHandler?
    
    static private var _cachedTasks = Dictionary<String, Task>()
    

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