https://blog.aaronnotes.com/posts/python/dependency-injection/
Dependency Injection