         @getCurrentTask().next_task
 
     # console.log 'NEXT TASK IS: ', nextTask
-    console.log 'TRANSCRIBE::render(), CURRENT SUBJCT = ', @state.currentSubject
+    console.log 'TRANSCRIBE::render(), CURRENT SUBJCT = ', @getCurrentSubject()
     # console.log "viewer size: ", @state.viewerSize
     <div className="classifier">
       <div className="subject-area">
         { if @state.noMoreSubjects
             style = marginTop: "50px"
             <p style={style}>There are currently no transcription subjects. Try <a href="/#/mark">marking</a> instead!</p>
-          else if @state.currentSubject?
-            <SubjectViewer onLoad={@handleViewerLoad} subject={@state.currentSubject} active=true workflow={@props.workflow} classification={@props.classification} annotation={currentAnnotation}>
+          else if @getCurrentSubject()?
+            <SubjectViewer onLoad={@handleViewerLoad} subject={@getCurrentSubject()} active=true workflow={@props.workflow} classification={@props.classification} annotation={currentAnnotation}>
               <TaskComponent
                 ref="taskComponent"
                 viewerSize={@state.viewerSize}
                 key={@state.taskKey}
                 task={@getCurrentTask()}
                 annotation={currentAnnotation}
-                subject={@state.currentSubject}
+                subject={@getCurrentSubject()}
                 onChange={@handleTaskComponentChange}
                 onComplete={@handleTaskComplete}
                 onBack={@makeBackHandler()}


module.exports = React.createClass # rename to Classifier
  displayName: 'Transcribe'
  mixins: [FetchSubjectsMixin, BaseWorkflowMethods] # load subjects and set state variables: subjects, currentSubject, classification

  getInitialState: ->
    workflow:                     @props.workflow
    currentSubject:               null
    taskKey:                      null
    classifications:              []
    classificationIndex:          0


  componentWillMount: ->
    @beginClassification()

  fetchSubjectsCallback: ->
    console.log 'fetchSubjectsCallback(), TASK KEY  = ', @state.currentSubject.type
    #TODO: We do need to account for times when there are no subjects? type won't do that. -AMS

    @setState taskKey: @state.currentSubject.type
    # @advanceToTask new_key

  handleTaskComponentChange: (val) ->


  advanceToNextSubject: ->
    console.log 'advanceToNextSubject()'
    # console.log "subjects: ", @state.subjects
    if @state.subject_index + 1 < @state.subjects.length
      next_index = @state.subject_index + 1
      next_subject = @state.subjects[next_index]
      console.log 'NEXT SUBJECT: ', next_subject
      @setState
        taskKey: next_subject.type
        subject_index: next_index
        , =>
          key = @getCurrentSubject().type
          @advanceToTask key
    else
      console.warn "WARN: End of subjects"
