immutability and constructors