#dependency-inversion-principle