Introduced immutable objects
Moved immutability boundary to client model
better mutability boundaries
turned properties of immutable objects to RO fields