part 1, basic DI principles, usage of app context to avoid RIF and make code more modular