#1 - add equals and hashCode