make domain objects immutable