added finished uml diagram