This finsishes the work started on #16803. Thanks Simon Charette, Tim Graham and Collin Anderson for the reviews.