diff --git a/minigrep/src/main.rs b/minigrep/src/main.rs
index d9c2fae..26ed330 100644
--- a/minigrep/src/main.rs
+++ b/minigrep/src/main.rs
@@ -4,20 +4,25 @@ use std::fs;
 fn main() {
     let args: Vec<String> = env::args().collect();
 
-    let (query, file_path) = parse_config(&args);
+    let config = parse_config(&args);
 
-    println!("Searching for {query}");
-    println!("In file {file_path}");
+    println!("Searching for {}", config.query);
+    println!("In file {}", config.file_path);
 
-    let contents = fs::read_to_string(file_path)
+    let contents = fs::read_to_string(config.file_path)
         .expect("Should have been able to read the file");
 
     println!("With text:\n{contents}");
 }
 
-fn parse_config(args: &[String]) -> (&str, &str) {
-    let query = &args[1];
-    let file_path = &args[2];
-
-    (query, file_path)
+struct Config {
+    query: String,
+    file_path: String,
+}
+
+fn parse_config(args: &[String]) -> Config {
+    let query = args[1].clone();
+    let file_path = args[2].clone();
+
+    Config { query, file_path }
 }