A Value Object is a domain object that has no unique identity but if any of its properties change it is no longer the same. An example can be made with money. ```py from dataclasses import dataclass @dataclass(frozen=True) class Money: type: str value: int Money("Euro", 10) != Money("Euro", 9) Money("GBP", 10) != Money("Euro", 10) ``` Thus such an object is a perfect candidate for immutability. With python we can add @dataclass(frozen=True). Frozen=true makes it immutable.