diff --git a/src/OneExplorer/OneExplorer.ts b/src/OneExplorer/OneExplorer.ts
index b7f9412a..3eac3be0 100644
--- a/src/OneExplorer/OneExplorer.ts
+++ b/src/OneExplorer/OneExplorer.ts
@@ -190,6 +190,8 @@ class NodeFactory {
 
     OneStorage.insert(node);
 
+    OneStorage.insert(node);
+
     return node;
   }
 }
@@ -237,7 +239,7 @@ class DirectoryNode extends Node {
       } else if (
           fstat.isFile() &&
           (fname.endsWith('.pb') || fname.endsWith('.tflite') || fname.endsWith('.onnx'))) {
-        const baseModelNode = NodeFactory.create(NodeType.baseModel, fpath, this);
+        const baseModelNode = OneStorage.getNode(fpath) ?? NodeFactory.create(NodeType.baseModel, fpath, this);
 
         if (baseModelNode) {
           this._childNodes!.push(baseModelNode);
@@ -292,7 +294,7 @@ class BaseModelNode extends Node {
       return;
     }
     configPaths.forEach(configPath => {
-      const configNode = NodeFactory.create(NodeType.config, configPath, this);
+      const configNode = OneStorage.getNode(configPath) ?? NodeFactory.create(NodeType.config, configPath, this);
 
       if (configNode) {
         this._childNodes!.push(configNode);
@@ -349,7 +351,7 @@ class ConfigNode extends Node {
     const products = cfgObj.getProductsExists;
 
     products.forEach(product => {
-      const productNode = NodeFactory.create(NodeType.product, product.path, this, product.attr);
+      const productNode = OneStorage.getNode(product.path) ?? NodeFactory.create(NodeType.product, product.path, this, product.attr);
 
       if (productNode) {
         this._childNodes!.push(productNode);
@@ -445,21 +447,27 @@ export class OneTreeDataProvider implements vscode.TreeDataProvider<Node> {
         {treeDataProvider: provider, showCollapseAll: true, canSelectMany: true});
 
     let registrations = [
-      provider.fileWatcher.onDidCreate((_uri: vscode.Uri) => {
-        provider.refresh();
-      }),
-      provider.fileWatcher.onDidChange((_uri: vscode.Uri) => {
-        // TODO Handle by each node types
-        provider.refresh();
+      vscode.workspace.onDidRenameFiles(e => {
+        e.files.forEach(file => {
+          console.log(`onDidRenameFile: ${file.oldUri}=>${file.newUri}`);
+          const node = OneStorage.getNode(file.oldUri.fsPath);
+          if (!node) {
+            return;
+          }
+          node.uri = file.newUri;
+        });
       }),
-      provider.fileWatcher.onDidDelete((uri: vscode.Uri) => {
-        const node = OneStorage.getNode(uri.fsPath);
-        if (!node) {
-          return;
-        }
+      vscode.workspace.onDidDeleteFiles(e => {
+        e.files.forEach(file => {
+          console.log(`onDidDeleteFiles: ${file.fsPath}`);
+          const node = OneStorage.getNode(file.fsPath);
+          if (!node) {
+            return;
+          }
 
-        OneStorage.delete(node, true);
-        provider.refresh(node.parent);
+          OneStorage.delete(node, true);
+          provider.refresh(node.parent);
+        });
       }),
       vscode.workspace.onDidChangeWorkspaceFolders(() => {
         provider._workspaceRoots = obtainWorkspaceRoots().map(root => vscode.Uri.file(root));
@@ -819,8 +827,23 @@ input_path=${modelName}.${extName}
           vscode.workspace.applyEdit(edit).then(isSuccess => {
             if (isSuccess) {
               vscode.workspace.openTextDocument(uri).then(document => {
-                document.save();
-                vscode.commands.executeCommand('vscode.openWith', uri, CfgEditorPanel.viewType);
+                document.save().then((isOk)=>{
+                  if(!isOk){
+                    return;
+                  }
+                  //New CFG File
+                  OneStorage.addConfig(uri.fsPath);
+                  const cfgObj = OneStorage.getCfgObj(uri.fsPath);
+                  if (cfgObj) {
+                    cfgObj.getBaseModels.forEach(model => {
+                      const basemodelNode = OneStorage.getNode(model.path);
+                      if (basemodelNode) {
+                        basemodelNode.resetChildren();
+                        this.refresh(node);
+                      }
+                    });
+                  }
+                }).then(()=>vscode.commands.executeCommand('vscode.openWith', uri, CfgEditorPanel.viewType));
               });
             } else {
               Logger.error('OneExplorer', 'CreateCfg', `Failed to create the file ${uri}`);
diff --git a/src/OneExplorer/OneStorage.ts b/src/OneExplorer/OneStorage.ts
index b1c5d4c9..35f0faba 100644
--- a/src/OneExplorer/OneStorage.ts
+++ b/src/OneExplorer/OneStorage.ts
@@ -147,6 +147,22 @@ export class OneStorage {
     }
   }
 
+  private static _replace(node: Node, newPath: string) {
+    OneStorage.get()._nodeMap.delete(node.path);
+    OneStorage.get()._nodeMap.set(newPath, node);
+
+    switch (node.type) {
+      case NodeType.baseModel:
+        OneStorage.resetBaseModel(node.path);
+        break;
+      case NodeType.config:
+        OneStorage.resetConfig(node.path);
+        break;
+      default:
+        break;
+    }
+  }
+
   private constructor() {
     const cfgList = this._initCfgList();
     this._cfgToCfgObjMap = this._initCfgToCfgObjMap(cfgList);
@@ -224,11 +240,34 @@ export class OneStorage {
     OneStorage._obj = undefined;
   }
 
+  public static addBaseModel(path: string): void {
+    // TODO
+
+    Logger.debug('OneStorage', `Config Path(${path}) is removed.`);
+  }
+
   public static resetBaseModel(path: string): void {
     delete OneStorage.get()._baseModelToCfgsMap[path];
     Logger.debug('OneStorage', `Base Mode Path(${path}) is removed.`);
   }
 
+  public static addConfig(path: string): void {
+    const cfgobj = ConfigObj.createConfigObj(vscode.Uri.file(path));
+    OneStorage.get()._cfgToCfgObjMap[path] = cfgobj;
+
+    if(!cfgobj){
+      return;
+    }
+
+    cfgobj?.getBaseModelsExists.map(v=>
+      v.path
+    ).forEach(model=>{
+      OneStorage.get()._baseModelToCfgsMap[model].push(path);
+    });
+
+    Logger.debug('OneStorage', `Config Path(${path}) is added.`);
+  }
+
   public static resetConfig(path: string): void {
     delete OneStorage.get()._cfgToCfgObjMap[path];
     Object.entries(OneStorage.get()._baseModelToCfgsMap).forEach(([modelpath]) => {