exercises 3.04 -- 3.08