diff --git a/data/results/attack_xai/.gitignore b/data/results/attack_xai/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..8fd610a44122d82a9167896d38bd6d267a25b4e6
--- /dev/null
+++ b/data/results/attack_xai/.gitignore
@@ -0,0 +1,2 @@
+/enron_spam
+/20_news
diff --git a/dvc.lock b/dvc.lock
index 7ccf085fdad8a01c27f8101a0a1b6ad29f75ef7f..03daca40816cba203743dacff47f5e5d9a6881b5 100644
--- a/dvc.lock
+++ b/dvc.lock
@@ -379,3 +379,43 @@ stages:
       md5: 82d89b00a710e9de0a2157357fed5894.dir
       size: 24977923
       nfiles: 2
+  attack_xai@enron_spam:
+    cmd: PYTHONPATH=. python experiments/scripts/attack.py --dataset_name enron_spam
+      --attack_type attack_xai
+    deps:
+    - path: data/classification/enron_spam
+      md5: 5de1a2fcbae0de94f5fbfd2bb747d919.dir
+      size: 14585920
+      nfiles: 2
+    - path: data/models/enron_spam
+      md5: 3e16b22f59532c66beeadea958e0579a.dir
+      size: 18505614
+      nfiles: 6
+    - path: experiments/scripts/attack.py
+      md5: 87f54ee4e2a08f1259d9d8b2d01fe1b9
+      size: 12061
+    outs:
+    - path: data/results/attack_xai/enron_spam/
+      md5: ad19831866da140de113e64862da0bce.dir
+      size: 2860109
+      nfiles: 2
+  attack_xai@20_news:
+    cmd: PYTHONPATH=. python experiments/scripts/attack.py --dataset_name 20_news
+      --attack_type attack_xai
+    deps:
+    - path: data/classification/20_news
+      md5: b73611443c4189af91b827c083f37e0b.dir
+      size: 42897496
+      nfiles: 2
+    - path: data/models/20_news
+      md5: 43d68a67ecb8149bd6bf50db9767cb64.dir
+      size: 439008808
+      nfiles: 6
+    - path: experiments/scripts/attack.py
+      md5: 87f54ee4e2a08f1259d9d8b2d01fe1b9
+      size: 12061
+    outs:
+    - path: data/results/attack_xai/20_news/
+      md5: af00c730d4d73a0a8e2a047882c0d9aa.dir
+      size: 8739816
+      nfiles: 2
diff --git a/dvc.yaml b/dvc.yaml
index 03c045f1148e592ae0fa0bb3a5da13f85af1d9ff..0455a1bc2a3849add2fac2a63f8c1303129e1e09 100644
--- a/dvc.yaml
+++ b/dvc.yaml
@@ -108,7 +108,71 @@ stages:
         - data/models/${item}
         - data/classification/${item}
       outs:
-       - data/results/attack_textfooler_discard/${item}/       
+       - data/results/attack_textfooler_discard/${item}/
+  attack_xai:
+    foreach:
+      - enron_spam
+      - 20_news
+      - wiki_pl
+    do:
+      wdir: .
+      cmd: >-
+        PYTHONPATH=. python experiments/scripts/attack.py
+        --dataset_name ${item} --attack_type attack_xai
+      deps:
+        - experiments/scripts/attack.py
+        - data/models/${item}
+        - data/classification/${item}
+      outs:
+        - data/results/attack_xai/${item}/
+  attack_xai_discard:
+    foreach:
+      - enron_spam
+      - 20_news
+      - wiki_pl
+    do:
+      wdir: .
+      cmd: >-
+        PYTHONPATH=. python experiments/scripts/attack.py
+        --dataset_name ${item} --attack_type attack_xai_discard
+      deps:
+        - experiments/scripts/attack.py
+        - data/models/${item}
+        - data/classification/${item}
+      outs:
+        - data/results/attack_xai_discard/${item}/
+  attack_xai_local:
+    foreach:
+      - enron_spam
+      - 20_news
+      - wiki_pl
+    do:
+      wdir: .
+      cmd: >-
+        PYTHONPATH=. python experiments/scripts/attack.py
+        --dataset_name ${item} --attack_type attack_xai_local
+      deps:
+        - experiments/scripts/attack.py
+        - data/models/${item}
+        - data/classification/${item}
+      outs:
+        - data/results/attack_xai_local/${item}/
+  attack_xai_discard_local:
+    foreach:
+      - enron_spam
+      - 20_news
+      - wiki_pl
+    do:
+      wdir: .
+      cmd: >-
+        PYTHONPATH=. python experiments/scripts/attack.py
+        --dataset_name ${item} --attack_type attack_xai_discard_local
+      deps:
+        - experiments/scripts/attack.py
+        - data/models/${item}
+        - data/classification/${item}
+      outs:
+        - data/results/attack_xai_discard_local/${item}/      
   attack_basic:
     foreach:
       - enron_spam
diff --git a/experiments/scripts/attack.py b/experiments/scripts/attack.py
index b545015f2812080f20850626144907ba3c1ae735..b5e868cd82d835ad31111f891e10cfbc749d3eef 100644
--- a/experiments/scripts/attack.py
+++ b/experiments/scripts/attack.py
@@ -149,6 +149,7 @@ def load_dir_files(dir_path):
             }
     return result
 
+
 def load_xai_importance(input_dir):
     global_xai_dir = os.path.join(input_dir, "global")
     local_xai_dir = os.path.join(input_dir, "local")
@@ -181,10 +182,11 @@ def main(dataset_name: str, attack_type: str):
         "20_news": "en",
         "wiki_pl": "pl",
     }[dataset_name]
-    xai_global, xai_local = load_xai_importance(
-        f"data/explanations/{dataset_name}"
-    ) if attack_type in ["attack_xai", "attack_xai_discard"] else {}, {}
-    xai_sub = 10
+    xai_global, xai_local = {}, {}
+    if "attack_xai" in attack_type:
+        importance = load_xai_importance(f"data/explanations/{dataset_name}")
+        xai_global, xai_local = importance[0], importance[1]
+    xai_sub = 5
     params = {
         "attack_textfooler": [lang, SYNONYM],
         "attack_textfooler_discard": [lang, DISCARD],