# Application Specific Modules

When all public functions and variables within a module are overwritten by module other than the one in the Library, the linker takes the new version and ignores the module in the Library. The following modules are implemented in the Library in order to support the Line Mode Browser but can be overwritten by GUI clients etc.

## Displaying and Prompting User Messages

The HTAlert module contains the code for prompting the user for file names, userid, password etc. Furthermore, it presents messages containing status information, error messages etc. to the user. The implementation in the library is meant for the Line Mode Browser (i.e. it writes to stderr) but can easily be overwritten by GUI browsers.

## History Manager

The HTHist module records and replays on request the documents which the user visits. There are no calls to this module within the Library so if the application does not use it then it is not linked in at all. If the application wants a more advanced history management, then this should be overwritten.

## Internal Event loop

The internal event loop in the HTEvtrg module is made to support libwww threads If an application wants its own event loop, then this module must be overwritten.

## Default Initializations

The HTInit module defines a standard set of initializations where all protocol modules and converters are setup at startup time of the application in the HTLibInit(). Often you can take this module and just override it with your own preferences.