Listing 12.10, 12.11, 12.12