added UML pic and javadocs