completed thru example 3-8