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 default
one demand change the instance variable to point to a new created
instance
=> you can remove all the ifNil:
