old values can be None