the demo not understood in chapter 4
read to 5.4