cleaned up UML