chapter 19, implemented setup