Dependencies coupled are dangerous because we couple both modules in a way that if we need to change one module with another, we necessarily need to modify the code of the coupled module that’s really bad if we want to create a testable app because unit testing requires that when we are testing a module, it is isolated from the rest of modules in our app. The solution is Depend upon abstractions. Do not depend upon concrete classes.