     //---------------------------------
 
     /**
-     *  Handle keyboard events. Left/Down decreases the value by snapInterval
-     *  or if snapInterval is 0 then it decreases the value by stepSize. The
-     *  opposite for Right/Up arrows. The Home and End keys set the value
+     *  Handle keyboard events. Left/Down decreases the value
+     *  decreases the value by stepSize. The opposite for
+     *  Right/Up arrows. The Home and End keys set the value
      *  to the min and max respectively.
      */
     protected function thumb_keyboardHandler(event:KeyboardEvent):void
     {
-        // TODO: Perhaps provide a way to easily override the keyboard
-        // behavior. Consider reversed HSliders or VSliders.
+        // TODO: Provide a way to easily override the keyboard
+        // behavior. This means having a callback in the subclasses
+        // that tell the superclass all the positions in an array
+        // but defaulting to the normal stepping behavior when no
+        // array is returned. Consider reversed HSliders or VSliders.
         var prevValue:Number = this.value;
         var newValue:Number;
         

            dispatchEvent(new Event("change"));
    }


    //---------------------------------
    // Track down handlers
    //---------------------------------
    
    /**
     *  Handle mouse-down events for the slider track. We calculate the
     *  value based on the new position and then move the thumb to the
     *  correct location as well as commit the value.
     */
    override protected function track_mouseDownHandler(event:MouseEvent):void
    {

            case Keyboard.DOWN:
            case Keyboard.LEFT:
            {
                newValue = nearestValidValue(value - stepSize, stepSize);
                positionThumb(valueToPosition(newValue));
                setValue(newValue);
                break;
            }

            case Keyboard.UP:
            case Keyboard.RIGHT:
            {
                newValue = nearestValidValue(value + stepSize, stepSize);
                positionThumb(valueToPosition(newValue));
                setValue(newValue);
                break;
            }
            
            case Keyboard.HOME:
            {
                value = minimum;
