 
       <hr />
 
-      {unless @props.task.questionsOrder.length is 0
+      {if @props.task.questionsOrder?.length
         <div>
           <Details summary="Questions">
             {for questionID in @props.task.questionsOrder

    @props.task.choices[choiceID]?.confusions[confusionID] = details

  addQuestion: ({question, multiple, required, answers, include, exclude, __parsedExtra}) ->
    unless question?
      throw new Error 'Questions require a "question" column'
    unless answers?
      throw new Error 'Questions require a "answers" column'

    includeChoices = include?.split /\s*;\s*/
    excludeChoices = exclude?.split /\s*;\s*/
    questionID = @makeID question

    # don't put it in the default questionsOrder if we've specified choices it should map to
    unless include? or questionID in @props.task.questionsOrder
      (maybeProp @props.task.questionsOrder, []).push questionID

    # if we specified mapped choices, create those entries instead
    if includeChoices?
      for choice in includeChoices
        continue unless choice?
        choiceID = @makeID choice
        (maybeProp @props.task, inclusions, []).push [choiceID, questionID]

    if excludeChoices?
      for choice in excludeChoices
        continue unless choice?
        choiceID = @makeID choice
        (maybeProp @props.task, exclusions, []). push [choiceID, questionID]

    @props.task.questions[questionID] =
      label: question

    owner[prop]

  cleanQuestions: () ->
    if @props.task.questionsOrder?
      for questionID in @props.task.questionsOrder
        for choiceID in @props.task.choicesOrder
          continue if @props.task.choices[choiceID].noQuestions
          qMap = @maybeProp @props.task, 'questionsMap', {}
          qSet = @maybeProp qMap, choiceID, []
          qSet.push questionID

    if @props.task.inclusions?
      for includeTuple in @props.task.inclusions
        qMap = @maybeProp @props.task, 'questionsMap', {}
        qSet = @maybeProp qMap, includeTuple[0], []
        qSet.push includeTuple[1]

    if @props.task.exclusions?
      for excludeTuple in @props.task.exclusions
        qMap = @maybeProp @props.task, 'questionsMap', {}
        qSet = @maybeProp qMap, excludeTuple[0], []
        index = qSet.indexOf excludeTuple[1]
        qSet.splice index, 1

    delete @props.task.inclusions
    delete @props.task.exclusions

  handleImageAdd: (media) ->
    @props.task.images[media.metadata.filename] = media.src
