https://www.techtarget.com/searchapparchitecture/definition/dependency-injection
https://www.freecodecamp.org/news/a-quick-intro-to-dependency-injection-what-it-is-and-when-to-use-it-7578c84fa88f/