- hashCode and equals corrected