public SqlitePersisterFolders(ICounts counts, IList <IFileParser> parsers, ILogger logger)
        {
            // save the logger
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            // the files ... in our folders
            Files = new SqlitePersisterFiles(this, counts, parsers, logger);

            // the folder updates.
            FolderUpdates = new SqlitePersisterFolderUpdates(Files, this, logger);
        }
        public SqlitePersisterFileUpdates(IFiles files, ICounts counts, ILogger logger)
        {
            //  the files interface.
            _files = files ?? throw new ArgumentNullException(nameof(files));

            // the counter interface
            _counts = counts ?? throw new ArgumentNullException(nameof(counts));

            // save the logger
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));
        }