Nothing new here
Have explained all of the code in Listing 1 in earlier lessons.
Won't repeat those explanations here.