--- /dev/null
+This is an attempt to document the lifecycles of the various datastructures in libgvc.
+
+
+
+
+gvc ------------------------------------------------------------------------------
+i/p file --------------------------------------------------- ------------------------
+i/p graph ------------------------ ------------------------ ------------------------
+jobset ------------------------ ------------------------ ------------------------
+layout ------------------------ ------------------------ ----------- -----------
+job ----------- ----------- ----------- ----------- ----------- -----------
+render ----------- ----------- ----------- ----------- ----------- -----------
+page -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+gvdevice ----------------------------------------------------------------- -----------
+
+
+gvc - extends over all input files, all graphs, all layouts, all renderings
+ lasts for as long as the application is dealing with graphs
+ provides management of plugins which should be loaded just once per invocation
+
+i/p file - can be more than one per gvc
+
+i/p graph - can be more than one per i/p file
+
+jobset - all layouts, all renderings of a single graph (not currently implemented)
+
+layout - a dot, or neato, or etc layout of a single graph
+
+job - a rendering of a single layout to a single gvdevice
+ possibly including multiple pages from a single rendering, or mutiple refresh renderings for callback events
+
+render - rendering of the whole of single graph layout in a single format to a single device, possibly in multiple parts,
+
+page or refresh - one part of a mutipart rendering
+
+gvdevice - typically, one device per job.
+ in the case of multipage output, a single gvdevice can be used for mutiple jobs and jobsets.
+ a single format to a single file, or a single window on a desktop
+
+