#22962 Pass 1: Refactored existing code to allow for custom steps.