Dependency inversion principle