The solution in item number one can only be used when the source code is available. Even in that situations, though, it may be confusing to be faced with all the internal details of the program. Even worse, by reading the details of the source program, the programmer may by accident make the customization dependent on details, which may be changed without notice in future versions of the application.
The second and the third solution are similar, especially when the documentation mentioned in item two is ``on line.'' However, there are differences too. First, the information gathering process may be more tightly integrated with the application process when using the tool approach. In the concrete example, information about the available open points of the personal database may be gathered while using the facility. Second, the interface of the tools, which present the hook information, may be active as opposed to the overall passive nature of online documentation. The hook supporting tools, which we shall describe in section 6.4, are browers via which hook attaching, detaching, and various kinds of querying about hooks are provided for.