updated UML class diagram