Then I’d suggest you take a step back and truly think about the design of your project. Before even coding, you should start thinking about contracts (interfaces) between those so implementation changes does not ripple across the whole project. Having a change in a worker bubble up is a sure sign of a big ball of mud[0].