ch2.2 finished
ch2.3 finished