Added Javadocs and UML Diagrams