diff --git a/config.toml b/config.toml
index 9b3d8cf5dc4abeac8982d0454f700d5a88ecda1f..3ec56d632914b71d2d8d07dbd43bf4bbf7041629 100644
--- a/config.toml
+++ b/config.toml
@@ -1,4 +1,4 @@
 auth = "12345"
-term_frequency_threshold = 2
+term_frequency_threshold = 1
 max_predict_count = 5
 blocked_words = ""
\ No newline at end of file
diff --git a/src/main.rs b/src/main.rs
index df9a833e7feda119f3e0c5f6c7d049c56e46c795..f58c712321a93d949fd212f10f706f5b5097bf6b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -38,10 +38,9 @@ fn main() -> Result<(), io::Error> {
         }
     }
 
-    let markov_chain = basic_set::from_file_path_and_config("../../data/data.csv",config.clone())
-        .unwrap_or(basic_set::from_file_path_and_config("data/data.csv",config.clone())
-            .unwrap_or(basic_set::from_file_path_and_config("data.csv",config.clone())
-                .unwrap_or(basic_set::SetPredictor::new())));
+    let markov_chain = basic_markov::from_file_path_and_config(
+        vec!["../../data/data.csv","data/data.csv","data.csv"],config.clone())
+                .unwrap_or(basic_markov::MarkovChainPredictor::new());
 
 
     // let term_frequency_threshold = match config.get("term_frequency_threshold") {
diff --git a/src/predictors/basic_markov.rs b/src/predictors/basic_markov.rs
index 7839581a15c4f17504f6cef217695567967dee0b..eebc5aae2b30ed6fa4eec79551e6bbcbd09e65e5 100644
--- a/src/predictors/basic_markov.rs
+++ b/src/predictors/basic_markov.rs
@@ -116,20 +116,32 @@ pub fn from_file_path(file_path: &str) -> Result<MarkovChainPredictor, std::io::
 }
 
 
-pub fn from_file_path_and_config(file_path: &str, config: HashMap<String, impl Into<String>>) -> Result<MarkovChainPredictor, std::io::Error> {
+pub fn from_file_path_and_config(file_paths: Vec<&str>, config: HashMap<String, impl Into<String>>) -> Result<MarkovChainPredictor, std::io::Error> {
     let mut configuration = HashMap::new();
     for (key, value) in config {
         configuration.insert(key, value.into());
     }
-    let file = File::open(file_path)?;
-    let mut reader = ReaderBuilder::new().from_reader(file);
+
     let mut markov_chain: MarkovChainPredictor = MarkovChainPredictor::new();
     markov_chain.configuration = configuration;
 
-    for result in reader.records() {
-        let record = result?;
-        if let Some(query) = record.get(5) {
-            markov_chain.update(query);
+    for path in file_paths {
+        println!("Trying to open data file at {}",path);
+        match File::open(path) {
+            Ok(file) => {
+                println!("Reading data file...");
+                let mut reader = ReaderBuilder::new().from_reader(file);
+
+                for result in reader.records() {
+                    let record = result?;
+                    if let Some(query) = record.get(5) {
+                        markov_chain.update(query);
+                    }
+                }
+            },
+            Err(e) => {
+                println!("Error while reading: {}",e);
+            }
         }
     }
 
diff --git a/src/predictors/basic_set.rs b/src/predictors/basic_set.rs
index ee009339db7a7d934a006cd707a35f8dea07e53e..43d5fd84aae850577cce112e41946a54d574351b 100644
--- a/src/predictors/basic_set.rs
+++ b/src/predictors/basic_set.rs
@@ -1,4 +1,4 @@
-use std::{collections::HashMap, fs::File};
+use std::{collections::HashMap, f32::consts::E, fs::File};
 
 use csv::ReaderBuilder;
 
@@ -104,22 +104,32 @@ pub fn from_file_path(file_path: &str) -> Result<SetPredictor, std::io::Error> {
 }
 
 
-pub fn from_file_path_and_config(file_path: &str, config: HashMap<String, impl Into<String>>) -> Result<SetPredictor, std::io::Error> {
+pub fn from_file_path_and_config(file_paths: Vec<&str>, config: HashMap<String, impl Into<String>>) -> Result<SetPredictor, std::io::Error> {
     let mut configuration = HashMap::new();
     for (key, value) in config {
         configuration.insert(key, value.into());
     }
-    println!("Trying to open data file at {}",file_path);
-    let file = File::open(file_path)?;
-    println!("Reading data file...");
-    let mut reader = ReaderBuilder::new().from_reader(file);
+
     let mut markov_chain: SetPredictor = SetPredictor::new();
     markov_chain.configuration = configuration;
 
-    for result in reader.records() {
-        let record = result?;
-        if let Some(query) = record.get(5) {
-            markov_chain.update(query);
+    for path in file_paths {
+        println!("Trying to open data file at {}",path);
+        match File::open(path) {
+            Ok(file) => {
+                println!("Reading data file...");
+                let mut reader = ReaderBuilder::new().from_reader(file);
+
+                for result in reader.records() {
+                    let record = result?;
+                    if let Some(query) = record.get(5) {
+                        markov_chain.update(query);
+                    }
+                }
+            },
+            Err(e) => {
+                println!("Error while reading: {}",e);
+            }
         }
     }