equals and hashCode fixed!