Dependency Inversion - Low Level Design