private ulong GenerateId()
        {
            // firstly, find the typeid that files in this FAR typically use
            var type   = FAR.EstimateTypeId();
            var random = new Random(FAR.EntriesByName.Count);

            var tryD = (uint)random.Next();

            tryD |= (uint)random.Next(2) << 31;

            while (Get(type, tryD) != null)
            {
                tryD  = (uint)random.Next();
                tryD |= (uint)random.Next(2) << 31;
            }

            return((ulong)type | ((ulong)tryD << 32));
        }