can setValue be used so that if value is nil it's a noop?