removed equals and hashcode