exercise 2.33 done
exercise 2.34 done
exercise 2.35 done
exercise 2.36 done
exercise 2.37 done
exercise 2.39 done
exercise 2.39 done