learning:

inheritance, polymorphism