Provide for flexible interaction
Allow user interaction to be interrupt-able and undo-able
Show technical internals from the casual user
Design for direct interaction with objects that appear on the screen