Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is descended from. Dashed arrows point from a module or program unit to modules which it uses.
polymorphic logging to text file, appending new values line by line. logs to disk, auto-creating filename if not given