ready for draft 1
Chapter 4 source code