Listing 13.14, 13.15, 13.16