added the UML sequence diagram