A TwoLevelConc (concordance) displays a concordance that is initially a list of words, each of which can be expanded to show a context list. The most basic version is initialized with an Array of HVOs, one for each top-level object. A flid is specified which can be used to obtain a string that is the keyword for that object (displayed in the top-level node). Enhance: plan to allow an interface to be supplied that allows a different string property to be displayed as the name of each hvo. TwoLevelConc itself will implement the interface, by supplying the flid from its member variable. Enhance: plan to allow an interface to be supplied that handles consequences of the user editing the keyword string (e.g., correcting spelling in all the occurrences). It will also have a flag indicating whether such editing is allowed. TwoLevelConc itself will implement this trivially to say that editing is not allowed. A call-back interface, IGetNodeInfo, is specified to allow the client to supply the information needed when a particular node is to be expanded. The information is supplied in the form of a INodeInfo object. A default implementation of INodeInfo, SimpleNodeInfo, is provided in this package.