if all you have it a list of items & their paths instead of an actual tree then you dont have a lot of choice but to build a tree
you’ll want some kind of “tree node object” that can hold a reference to the class/module that you read
and it also need to have an array of references to the classes / modules it contains
Class node
myObjectReference as object
myContents() as object
end class
And then a “project” is just an array of these nodes (since it may have many top level items that contain other items)
Another approach is to just have a giant flat list and track the ID’s and the “contained by ID” and a way to find all those very quickly when a hierarchical node is expanded
edit : something like this