functional-dependency-injection