A good solution is to have share by default and instance-based when needed.
For that use a classVariable to instantiate only one NullLayoutProperties use an instance variable that points to it by defaultone demand change the instance variable to point to a new created instance
=> you can remove all the ifNil: