Not sure where "root.txt" expiration time is coming from. Comments say user, code *looks* like it's getting it from config.cfg. Really, user-specified time is being written to and read from config.cfg.

Also, do we really need config.cfg in the long term? Why not read metadata from the metadata itself, instead of essentially a cache of it?