     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.

    let color: MutableProperty<NSColor>
    
    init() {
//        self.progress =  MutableProperty<Float>(0)
        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()
//        animating <~ progress |> map { self.isAnimating($0) }
    }
    
    func updateProgress(amount: Float) {
//        progress.put(amount)
        sendNext(sink, .Ongoing(amount))
    }
    
    func progressFinished() {
        sendNext(sink, .Finished)
    }
        
    private func isAnimating(progress: Progress) -> Bool {

//  Copyright (c) 2015 Bader Alabdulrazzaq. All rights reserved.
//

import ReactiveCocoa

enum Progress {
