add Hashcode and equals methods