Highlighted classes:

NewsModel

The NewsModel class acts as the "model" in the MVC approach to GUI applications. It is constructed with a NewsPortal object. The state of the program is stored here, in the form of private variables. The selected group, list of headers, and article are stored. Searching is implemented. Whenever a task is complete, an event is fired which lets the GUI know. If the GUI has to communicate with the Portal, it is done through the model. When the GUI makes a request, therefore, the model makes the same request to the GUI while setting its private variables. It listens to the Portal through the NewsPortalListener interface, which tells it when a request has been completed.

CompletionHandlers

This class does the same thing for the model that EventHandlers does for the GUI.

TimeManager

This class is responsible for terminating the connection to the host after the user has not made any requests for five minutes. It is constructed in the constructor for the model, given the model as a parameter, and starts the Timer thread immediately.