Listing 2.6
Listing 3.1