add equals hashcode and name