Added UML diagram