Adding to a Value Object property always adds to it, never adds another instance to it.  Distinguishing Value Objects by maintaining a collection of them implies identity. It is a mistake to attempt to maintain a collection of Value Objects. Let’s take the near-canonical Address, a perfectly valid Value Object as described on page 98 [...]