exercise 1.16 fix & 1.17
exercise 1.18