Your TS application is getting more complex and has grown beyond a manual constructor dependency injection. You need a DI framework. Now you are looking at 200 page InversifyJS manual, @decorator confetti party and a `reflect-metadata` babel configuration nightmare. And after that you find out that it doesn't support async code. There is another way.