Listing 6 requires that a reference to the Source object be passed as a parameter. This is not the preferred approach,
The constructor saves a reference to the Source object