added final UML sequence diagram