issue #21986: split out update functions