A library of object-oriented routines that are used to develop an application and eliminate much of the tedium of programming today's graphical user interface-based applications. Classes are provided for myriad functions including window creation and other GUI elements, as well as file input/output and multithreading. Many of the base features of the class are used unchanged, while others are modified to suit the application. Foundation classes cannot always be used. For example, the Windows version of this encyclopedia, which uses its own text display architecture, requires interfacing to Windows at a lower level than what foundation classes offer. However, foundation classes still require programming ability and take time to master. They are not suited to end users as are various kinds of application generators. See MFC, JFC, OWL and application generator.