diff --git a/crisprbact/predict.py b/crisprbact/predict.py
index 00f3aeabcba89cb2d18245d2620d84d21aa270bf..1dd657cb1bafbf30fc2981cdfff1d76c17c793bd 100644
--- a/crisprbact/predict.py
+++ b/crisprbact/predict.py
@@ -71,11 +71,12 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
 
         for i, target in enumerate(alltargets):
             target_id = i + 1
-            target.update({"id": target_id})
+            target.update({"target_id": target_id})
             target.update({"pred": preds[i]})
             if genome:
                 off_targets_per_seed = []
                 for seed_size in seed_sizes:
+                    # off-target found for a guide
                     off_target_df = compute_off_target_df(
                         target["guide"], seed_size, records, genome_features
                     )
@@ -87,7 +88,7 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
                         ]
                         for j, off_t in enumerate(off_targets.values.tolist()):
                             off_target_dict = {
-                                "id": str(target_id)
+                                "off_target_id": str(target_id)
                                 + "-"
                                 + str(seed_size)
                                 + "-"
@@ -98,7 +99,8 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
                                 "off_target_strand": off_t[3],
                                 "off_target_recid": off_t[4],
                             }
-
+                            # Filter the off targets if the strand
+                            # is not the opposite of the feature
                             off_t[5] = list(
                                 filter(
                                     lambda feat: get_strand_value(
@@ -108,6 +110,7 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
                                     off_t[5],
                                 )
                             )
+                            # Loop through features associated to an off-target position
                             if len(off_t[5]) > 0:
                                 # Loop for each feature
                                 for feat in off_t[5]:
@@ -119,7 +122,9 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
                                     }
                                     for k, feat in feat.qualifiers.items():
                                         if k != "translation":
-                                            feature_dict[k] = "::".join(feat)
+                                            feature_dict["off_target_" + k] = "::".join(
+                                                feat
+                                            )
                                     off_targets_list.append(
                                         {**feature_dict, **off_target_dict}
                                     )
@@ -137,7 +142,7 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12]):
                             {
                                 "id": str(i) + "-" + str(seed_size),
                                 "seed_size": seed_size,
-                                "off_targets": off_targets_list,
+                                "off_targets": [],
                             }
                         )
                         # target.update({"off_targets": off_targets_list})