chapter 9 changes to externalize data