Figure 2: CGI class hierarchy