Design Choices
How to implement objects such as lists, and relations such as consists-of, etc.
Common question: is it better to implement different behaviors by inheritance or by setting a behavior after the object is created?
How to implement message-passing between objects.