diff --git a/.gitignore b/.gitignore
index 0b3cb79fd9fca0b6513ffc7fa9100a6c7f6b0a50..8c8bf6105435293d0922b5799496d52498c19169 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+test.bin
 native/target
 native/index.node
 native/artifacts.json
diff --git a/lib/index.js b/lib/index.js
index 7b577e2e8df35b50587f9b8cb66da368281bea7a..e3bb6c8ea70f15f2b1fd81a249267336e708fcf3 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -90,25 +90,44 @@ const WotB = {
         return addon.set_max_links(this.instanceID, maxCert);
     },
 
-
     addNode: function() {
-        return addon.add_node(this.instanceID);
+        var result = addon.add_node(this.instanceID);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     removeNode: function() {
-        return addon.rem_node(this.instanceID);
+        var result = addon.rem_node(this.instanceID);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     setEnabled: function(is_enabled, nodeId) {
-        return addon.set_enabled(this.instanceID, is_enabled, nodeId);
+        var result = addon.set_enabled(this.instanceID, is_enabled, nodeId);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     addLink: function(source, target) {
-        return addon.add_link(this.instanceID, source, target);
+        var result = addon.add_link(this.instanceID, source, target);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     removeLink: function(source, target) {
-        return addon.rem_link(this.instanceID, source, target);
+        var result = addon.rem_link(this.instanceID, source, target);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     isOutdistanced: function(node, sentry_requirement, step_max, x_percent) {
@@ -136,5 +155,14 @@ const WotB = {
 
     clear: function() {
         return addon.remove_wot(this.instanceID);
+    },
+
+    resetWoT: function() {
+        var sigStock = addon.getMaxCert(this.instanceID);
+        addon.remove_wot(this.instanceID);
+        this.instanceID = addon.new_memory_instance(sigStock);
+        if (filePath.length > 0) {
+            this.write();
+        }
     }
 }
\ No newline at end of file