exercises 2.15 and 2.16