 
     getStimulus: (id) -> @_local[id].stimulus_html
 
-    # getEditableTags: (id) -> getTagTypes(@_local[id].tags).editable
-
-    # getFixedTags: (id) -> getTagTypes(@_local[id].tags).fixed
-
     getPublishedDate: (id) -> @_local[id].published_at
 
     isPublished: (id) -> @_local[id].published_at


  updateStimulus: (id, stimulus_html) -> @_change(id, {stimulus_html})

  # updateTags: (id, editableTags) ->
  #   fixedTags = getTagTypes(@_get(id).tags).fixed
  #   tags = editableTags.concat(_.pluck(fixedTags, 'value'))
  #   tags = _.filter(tags, (tag) -> tag isnt '')
  #   @_change(id, {tags})

  # updateFixedTag:(id, oldTag, newTag) ->
  #   tags = @_get(id).tags
  #   if (not newTag)
  #     tags = _.filter(tags, (tag) -> tag isnt oldTag)
  #   else if (not oldTag)
  #     tags.push(newTag)
  #   else
  #     tags = _.filter(tags, (tag) -> tag isnt oldTag)
  #     tags.push(newTag)

  #   @_change(id, {tags})

  addBlankPrefixedTag: (id, {prefix}) ->
    prefix += ':'
    tags = _.clone( @_get(id).tags )
    unless 0 is tags.indexOf(prefix) # is there already a blank one?
      tags.push(prefix)
      @_change(id, {tags})


  # Updates or creates a prefixed tag


EmptyFn = -> ''

ExerciseConfig = {
  _loaded: cascadeLoad
  _asyncStatusPublish: {}
