     text: selection
   }).value()
 
+  #used to handle the case when the developer has "null" in the dataset
+  noDataEverSelected = false
+  if selection.value() is null then noDataEverSelected = true
 
   valueOut.on('keydown', (->
     keyCode = d3.event.keyCode

      if not menuOpen.value()
        menuOpen.value(true)
      else
        if selection.value() is null
          selection.value(data.value()[0])
        else
        ##increment selection
          selectionIndex = 0

      userChar = String.fromCharCode(keyCode)
      userInputText.value(userChar)
      for datum in data.value()
        window.datum = datum
        if datum and label.value()(datum).charAt(0) is userInputText.value()
          selection.value(datum)
          break

