chapter 5 without functional tests