https://gabrieltanner.org/blog/dependency-injection-android/