The SetPoint driver package is simple yet extremely powerful. Aside from being able to modify your pointer settings (trails, speed, side scrolling speed, acceleration, scrolling size, etc) you can also completely reprogram all of the buttons except the tilt wheel. You can either choose from a basic list of operations, or you can choose "other" which brings up a more extended list. For instance, instead of using the application switch button's default function, I have it set to maximize the selected window on press. None of this is new though, as the same button functions were available for programming on the MX310 and MX510. The biggest difference is the new "keystroke assignment" feature. If you select it, you can then program each button to have the same function as a keystroke or a series of two keystrokes.