improved javadoc: added UML diagrams