immutable def