added javadocs
added UML pictures