Did code refactoring and fixed UML