     case Finished
 }
 
-struct ProgressIndicationViewModel {
-//    let progress: MutableProperty<Float> // Maybe the progress should be its own signal producer. each time it sends the progress then completed.
+class ProgressIndicationViewModel {
     let animating: MutableProperty<Bool>
     
     let progress: Signal<Progress, NoError> // faux Hot signal. "Warm". How do i make model one signal in terms of other operations, even when it does not incur sideeffects by itself.

        }
    }
        
}

//func assetGenerationFinished(generated: Int) {
//    
//    progressController.resetProgress {
//        self.updateGenerateButton()
//        //            self.updateState()
//        //            self.fileDropController.displayDoneState(generated)
//        self.generateButton.title = "Build Again"
//        self.generateButton.sizeToFit()
//        let s = self.pluralize(generated, singular: "asset was", plural: "assets were")
//        let catalog = self.target!.lastPathComponent
//        self.statusLabel.stringValue = "\(s) added to \(catalog)"
//    }
//}
//
//private func pluralize(amount: Int, singular: String, plural: String) -> String {
//    switch amount {
//    case 1:
//        return "1 \(singular)"
//    case let a:
//        return "\(a) \(plural)"
//    }
//}

/*

class progressBarViewModel  {
    // VC will bind to this.
    var progress 	// Will send COMPLETED which is when we can execute our reset logic and maybe call completion closure or however we solve this.
    var isAnimating
    var color
    var lineWidth // MAYBE NOT NEEDED
}
*/
    let color: MutableProperty<NSColor>
    
    init() {
        self.animating = MutableProperty<Bool>(false)
        self.color = MutableProperty<NSColor>(NSColor(calibratedRed: 0.047, green: 0.261, blue: 0.993, alpha: 1))
        (self.progress, self.sink) = Signal<Progress, NoError>.pipe()
    }
    
    func updateProgress(amount: Float) {
        sendNext(sink, .Ongoing(amount))
    }
    
    func progressFinished() {
        sendNext(sink, .Finished)
    }
    
    func progressStarted() {
        sendNext(sink, .Started)
    }
        
    private func isAnimating(progress: Progress) -> Bool {
