Using Inversion of Control to make our higher module DIServices to depend on abstraction rather than concrete implementation