Design Goal for Constructor and Selectors:

The user of the constructor and selector operations should not have to know the details of the package representation.

To meet this goal, we practice data abstraction, that is, we strictly separate: