https://rhenache.medium.com/simplifying-dependency-injection-in-typescript-with-injected-ts-8ba5f75f5715