example 5-1
exercise 5-2
exercise 5-3