https://medium.com/@codebob75/dependency-injection-in-c-simply-explained-and-comprehensive-guide-2ff37eebf95c