I passed this exercise without implementing the equals() and hashCode() methods. I simply overrode the clone() method of the Solution class in which I cloned the "users" map of the original object to the cloned object's "users" field. In the "right solution" the equals() and hashCode() methods are implemented. Why? I can't see where they are used in the code and why they are needed. Am I missing something or was creating the equals() and hashCode() just extra Conditions which had nothing to do with the cloning process? Thanks in advance.