better UML diagram