Listing 11.7, 11.8, 11.9