Dependency Inversion principle