public static TM_FileStorage                     load_GuidanceItemsFromCache(this TM_FileStorage tmFileStorage)
        {
            var tmDatabase = tmFileStorage.tmXmlDatabase();

            if (tmDatabase.isNull())
            {
                return(tmFileStorage);
            }

            var chacheFile = tmFileStorage.getCacheLocation();

            if (chacheFile.fileExists().isFalse())
            {
                "[TM_Xml_Database] [load_GuidanceItemsFromCache] cached file not found: {0}".debug(chacheFile);
                tmFileStorage.xmlDB_Load_GuidanceItems_and_Create_CacheFile();
            }
            else
            {
                var o2Timer             = new O2Timer("[TM_Xml_Database] [loadGuidanceItemsFromCache] loaded cache ").start();
                var loadedGuidanceItems = chacheFile.load <List <TeamMentor_Article> >();
                o2Timer.stop();
                if (loadedGuidanceItems.isNull()) //if we couldn't load it , delete it
                {
                    Files.deleteFile(chacheFile);
                }
                else
                {
                    o2Timer = new O2Timer("[TM_Xml_Database] [loadGuidanceItemsFromCache] loading files ").start();
                    foreach (var loadedGuidanceItem in loadedGuidanceItems)
                    {
                        if (loadedGuidanceItem.notNull())
                        {
                            tmDatabase.Cached_GuidanceItems.add(loadedGuidanceItem.Metadata.Id,
                                                                loadedGuidanceItem);
                        }
                    }
                    o2Timer.stop();
                }
                tmFileStorage.populateGuidanceItemsFileMappings();
            }
            return(tmFileStorage);
        }