https://www.webcodegeeks.com/javascript/dependency-injection-explained-via-javascript/
Dependency Injection Explained via JavaScript