Defines which options there are
Store the current values of the options
Different logic and data types for different types of option Dependencies between options
Lets the user in on the fun
Next: excruciating detail!