Added UML and updated classes to match diagram