uml+ some refactoring