added uml diagram and updated readme