diff --git a/config.toml b/config.toml
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7bbf4bef306f1e4db181c4f7805daf8cce51bf38 100644
--- a/config.toml
+++ b/config.toml
@@ -0,0 +1,3 @@
+auth = "12345"
+term_frequency_threshold = 2
+max_predict_count = 5
\ No newline at end of file
diff --git a/src/main.rs b/src/main.rs
index ed9091c72f12379e0338386d5a0be98d73ec6b1f..cd28d0e686bc6b83015fb2738fef9da4eb0bfa05 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -27,7 +27,7 @@ fn main() -> Result<(), io::Error> {
                         .unwrap_or(build_markov_chain("data.csv")
                             .unwrap_or_default());
     let filtered_markov_chain = filter_markov_chain(&markov_chain,2);
- 
+
     // Print the Markov Chain for verification
     for (key, values) in &markov_chain {
          //println!("{}: {:?}", key, values);
@@ -55,7 +55,11 @@ fn main() -> Result<(), io::Error> {
         //println!("got query:{}", query.clone().unwrap());
         match query {
             Ok(query) => {
-                let prediction = predictn(&filtered_markov_chain, &query,5);
+                let predict_count = match config.get("max_predict_count") {
+                    Some(toml::Value::Integer(n)) if *n >= 0 => *n as usize,
+                    _ => 5
+                };
+                let prediction = predictn(&filtered_markov_chain, &query, predict_count);
                 //println!("Query: {}, Prediction:{}", query, prediction);
                 let response = Response::from_string(prediction);
                 request.respond(response);