Major refactoring and except (CourseInfo) all other modules are in test case