added updated  uml diagram