exercises 3.5.1 and 3.5.2