Each version of the code makes some assumptions. Every time you change the requirements, it’s not enough to adjust some code, should also revisit those assumptions. You can keep experimenting with the code, but every change should be checked for compliance to those assumptions, otherwise the behavior becomes unpredictable. The user’s intentions are invisible to the machine. Likewise, the code for t r
is unaware of rbstep
.
Given the above, I would follow your earlier suggestion to separate the workflows.