We need a standard contract for equals and hashCode and what to do with empty ids