Why are we only setting it if it is nil? Why not just set it every time? Otherwise we'd not apply a change in the value - which is a rare event, but still.