Dependency inversion
Extending School.class by CourseProvider.class Moving common
methods to course provider.
Extending SchoolUser.class by CourseProviderUser.class, moving
common methods to CourseProviderUser
Extending SchoolArea.class by CourseProviderArea.class, moving
common methods to CourseProviderArea
Extending SchoolCategory.class by CourseProviderCategory.class,
moving common methods to CourseProviderCategory
Extending SchoolType by CourseProviderType, moving common methods
to CourseProviderType
Extending SchoolBusiness by CourseProviderBusiness moving
common methods to CourseProviderBusiness
Extending SchoolUserBusiness by CourseProviderUserBusiness
Refactoring and bugs fixing after extension