Necessary classes

All the elementary classes.
Design pattern:
abstract factory
bridge
facad