Refactoring: renaming classes and redesigned client