diff --git a/crisprbact/predict.py b/crisprbact/predict.py
index 1e2dc473bff4cc744af21cb07c906b96b7228a56..5df0d72eba09f04cf58098490a8f3b8bcef54aa3 100644
--- a/crisprbact/predict.py
+++ b/crisprbact/predict.py
@@ -89,8 +89,15 @@ def on_target_predict(seq, genome=None, seed_sizes=[8, 9, 10, 11, 12, GUIDE_LEN]
             target.update({"pred": preds[i]})
             if genome:
                 # lookup for off-targets in genome
-                off_targets_per_seed = gen_off_target_per_seed_size(
-                    i, target["guide"], records, genome_features, target_id, seed_sizes
+                off_targets_per_seed = list(
+                    gen_off_target_per_seed_size(
+                        i,
+                        target["guide"],
+                        records,
+                        genome_features,
+                        target_id,
+                        seed_sizes,
+                    )
                 )
                 target.update({"off_targets_per_seed": list(off_targets_per_seed)})
             else:
@@ -157,8 +164,8 @@ def gen_off_target_per_seed_size(
         )
         if off_target_df is not None and not off_target_df.empty:
             off_targets = slice_off_targets_results(off_target_df)
-            off_targets_list = gen_off_targets_dict_list(
-                target_id, seed_size, off_targets
+            off_targets_list = list(
+                gen_off_targets_dict_list(target_id, seed_size, off_targets)
             )
             yield {
                 "id": str(index) + "-" + str(seed_size),
@@ -188,7 +195,7 @@ def gen_off_targets_dict_list(target_id, seed_size, off_targets):
         }
         if (
             seed_size == GUIDE_LEN
-            or off_target_dict["off_target_longest_perfect_match"] != GUIDE_LEN
+            or len(off_target_dict["off_target_longest_perfect_match"]) != GUIDE_LEN
         ):
             index_features = 7
             # Get feature details associated