Changed equals and hashcode