Listing 11.10, 11.11, 11.12