Yup. https://blog.thecodewhisper...
I would add that the "bad design" is doing its job: it's telling you that you've scattered cohesive behavior throughout the system. Pushing it up the call stack towards the entry point gathers that behavior into one place. That's the trick.