Added uml diagram