         # todo: what is @index for?? and does this function need bound?
         adjusted = if @index > -1 then @index else -1  # todo: better name (this is for if prompt offset)
         @selected = Ember.EnumerableUtils.indexOf(selectedIndexes, adjusted) > -1
+  ).observes 'selection.@each'
 
   _triggerChange: (->
     selection = @get('selection')

    if not Ember.isArray(selection)
      @set('selection', Ember.A([selection]))
      return
    @_selectionDidChangeMultiple()
  ).observes 'selection.@each'

  # todo: consider consolidating all private "multiple" fns that are needed
  _selectionDidChangeMultiple: ->
    content = @get('content')
    selection = @get('selection')
    selectedIndexes = if content then Ember.EnumerableUtils.indexesOf(content, selection) else [-1]

        Ember.EnumerableUtils.replace selection, 0, Ember.get(selection, 'length'), newSelection
      else
        @set('selection', newSelection)
  ).on('change')
