dependency_inversion_principal