Another object package of interest is DSPACK, used by NA49 at CERN. http://hpna49-1.cern.ch/manuals.html Instead of defining objects at compile time, objects are created at run time by calls to routines from either C or FORTRAN. The data structures know names (in memory, and on tape), and contents may be fetch by whole structures (which can be read into structures defined in the calling language if you desire), or fetched piece by piece, by name. Complex structures can be built of lower level structures. The details of the memory manager are hidden from the user (no more IQ(L+17)). Instead of pointers (links) one uses "handles", an id number generated by THE SYSTEM and returned to the user. You are not responsible for the validity of the link; your only obligation is to not change the handle. The effect is as if all links are in link areas. It can use ZEBRA FZ for I/O. It may use ZEBRA underneath for memory management, but you basically can't see that.