This is part 10 of a broken down version of the #140101 refactor. This will make future PRs easier to review.