 
   exports:
     get: (id) -> @_get(id)
+    getStep: (id, stepIndex) -> @_get(id)[stepIndex]
+    getStepByKey: (id, stepKey) -> @exports.getStep.call(@, id, stepKey - 1)
 
 
 {actions, store} = makeSimpleStore(TaskPanel)

  stepId = step.id or 'default'

  panels = StepPanel.getPanelsWithStatus(stepId)

  _.extend({panels}, _.pick(step, 'id', 'type', 'is_completed', 'related_content', 'group'))

makeUiSettings = (initial) ->
  deepMerge({}, ONE_TIME_CARD_DEFAULTS, initial)

    if incompleteIndex is -1 or stepIndex <= incompleteIndex
      makeStep(task, step, stepIndex)

afters =
  'end': (task, step, stepIndex) ->
    makeAvailableStep(task, {type: 'end'}, stepIndex)

stepMappers = _.flatten([
  _.values(befores)
