Added class diagram and documentation