Decoupling the tests from the implementation. (Exercises 8.5.2)