Tip for Marco on next version
While it is not necessary to show the entire code, it is helpful to know which System and project modules are being used that are not normally generated when a new class is added. I found this a source of frustration in the first version. For example, code on page 179 for custom events references System.Web which isn't normally added to class files in class projects. Having the "Using System.Web;" statement as grayed portion of the code is helpful.