             
             button.reactive.title(for: .normal) <~ setup.cardCount.combineLatest(with: setup.nonReadyCount).map { "\(max($0 - $1, 0))" }
             
-            view.reactive.backgroundColor <~ setup.cardCount.combineLatest(with: self.viewModel.currentReviewType).map { (count, currentRevType) in
+            view.reactive.backgroundColor <~ setup.shouldEnable.combineLatest(with: self.viewModel.currentReviewType).map { (shouldEnable, currentRevType) in
                 let colors = SRSViewController.buttonColorsFromReviewType(reviewType)
                 if let current = currentRevType,
                     current != reviewType {
                     return colors.disabledColor
                 }
-                return count == 0 ? colors.disabledColor : colors.enabledColor
+                return shouldEnable ? colors.enabledColor : colors.disabledColor
             }
             
             self.viewModel.currentReviewType.uiReact { rtyp in

        let nonReadyCountProperty: MutableProperty<Int> = MutableProperty(0)
        
        shouldEnable <~ shouldEnableStartSignal(countProperty: countProperty,
                                                reviewType: reviewType)
        
        let action = StartActionType(enabledIf: shouldEnable) { _ in

        }
    }

    private func shouldEnableStartSignal(countProperty: MutableProperty<Int>,
                                         nonReadyCountProperty: MutableProperty<Int>,
                                         reviewType: ReviewType) -> Signal<Bool, NoError> {
        
        let result = Property.combineLatest(countProperty, nonReadyCountProperty, currentReviewType)
            .map { (count:Int, nonReadyCount: Int, inProgressReview:ReviewType?) -> Bool in
                return inProgressReview == nil && (count - nonReadyCount) > 0
        }
        return result.signal
    }

    func saveSession(startSession: StartedSession?) {
