A pumping system for moving water of a swimming pool, the pumping system including: a water pump for moving water in connection with performance of an operation upon the water; an infinitely variable speed motor operatively connected to drive the pump; a memory configured to store a plurality of retained speed values; a user interface comprising: a plurality of retained speed buttons (41a-41d), each button configured to select one of the plurality of retained speed values; a speed increase button and a speed decrease button configured to alter the value of the selected one of the plurality of retained speed values, the increase and decrease buttons (45a, 45b) being capable of an actuate and release operation to alter the selected one of the plurality of retained speed values in increments, and a first touch-and-hold operation to continuously alter the selected one of the plurality of retained speed values an amount corresponding to the amount of time the increase button or decrease button is actuated; and a visual display for displaying the current speed value to the user as the user alters the current speed value; wherein each of the plurality of retained speed buttons (41a-d) is capable of a second touch-and-hold operation to store in the memory a new speed value that replaces the retained speed value associated with that button (41a-d); and means for operating the motor at the selected one of the plurality of retained speed values. a water pump for moving water in connection with performance of an operation upon the water; an infinitely variable speed motor operatively connected to drive the pump; a memory configured to store a plurality of retained speed values; a user interface comprising: a plurality of retained speed buttons (41a-41d), each button configured to select one of the plurality of retained speed values; a speed increase button and a speed decrease button configured to alter the value of the selected one of the plurality of retained speed values, the increase and decrease buttons (45a, 45b) being capable of an actuate and release operation to alter the selected one of the plurality of retained speed values in increments, and a first touch-and-hold operation to continuously alter the selected one of the plurality of retained speed values an amount corresponding to the amount of time the increase button or decrease button is actuated; and a visual display for displaying the current speed value to the user as the user alters the current speed value; wherein each of the plurality of retained speed buttons (41a-d) is capable of a second touch-and-hold operation to store in the memory a new speed value that replaces the retained speed value associated with that button (41a-d); and a speed increase button and a speed decrease button configured to alter the value of the selected one of the plurality of retained speed values, the increase and decrease buttons (45a, 45b) being capable of an actuate and release operation to alter the selected one of the plurality of retained speed values in increments, and a first touch-and-hold operation to continuously alter the selected one of the plurality of retained speed values an amount corresponding to the amount of time the increase button or decrease button is actuated; and a visual display for displaying the current speed value to the user as the user alters the current speed value; wherein each of the plurality of retained speed buttons (41a-d) is capable of a second touch-and-hold operation to store in the memory a new speed value that replaces the retained speed value associated with that button (41a-d); and means for operating the motor at the selected one of the plurality of retained speed values.