CGIs are often used for processing HTML forms. CGIs can be also used to generate HTML forms dynamically. The following is an example of a fairly common CGI application. It is used to maintain a guest book or list of comments. The CGI generates a document with the title specified by the parameter doc_name followed by a listing from a file specified by the parameter comments_file, followed by an HTML form. If the CGI receives a parameter action with the value add, and the parameters name and comment are not empty, then the CGI adds the comment to the comments file. When the CGI generates and HTML form, it invisibly embeds parameters it want to remember as hidden input fields.