exercise 2.42 done
exercise 2.43 done