Inversion of control is a fantastic way to side-step the issue of making an incorrect assumption about the future use cases of our reusable code.