issue #20734: More refactoring while trying to figure out how this is going to work.