Implementation of the flyweight pattern. It permits decoupling the changing data from the static data (value objects) in instances to improve the performance in our design: