Testing multiple level of inheritance, code refactoring and bug fixing.
Code Refactoring so that implemented classes are not dependent on each other.