anchor.diff:        key = options.firstKey();
       return key;
     }
  +  /** Takes the previous option and returns the input_value of that option.
  +    * If we're at the beginning of the list, gets you the last option.
  +    * If no current option is set (passed) gets your the last option too.
  +   */
     getPrevValue(String current) {
       if(current == null)
         return options.lastKey();
  
positive.code:   setPrevValue() {
      setValueByInputValue(getPrevValue(this.input_value));
    }
    focusNextOption() {
      this.focused_option = getNextValue(this.focused_option);
      this.behave('focusCurrentOption');
    }
    focusPrevOption() {
      this.focused_option = getPrevValue(this.focused_option);
      this.behave('focusCurrentOption');
    }
    
    setValueByInputValue(ip) {
      this.input_value    = ip;
      this.focused_option = ip;
      this.display_value  = this.options[ip];
    }
  
    setValueFromKeypressStack() {
      var found = false;
      options.forEach((k,v) {
  
negative.code:     }
    }
  
    /** This method helps us handle what happens when user presses ENTER/SPACE keys.
      * If the selectbox is closed, then just open it. If it's opened, then it means
      * that the user is navigating it with keys and whichever option currently has focus
      * should be set as current. */
    setFocusedAndToggle() {
      if(this.opened) {
        if(this.focused_option != null)
  