Homework from GeekHub. Some classes with abstractions and interfaces.