chapter 4 impl details