Added formal UML diagrams