diff --git a/jest_rust/src/main.rs b/jest_rust/src/main.rs
index 9adf148..1e0609e 100644
--- a/jest_rust/src/main.rs
+++ b/jest_rust/src/main.rs
@@ -51,12 +51,7 @@ static FORBIDDEN_WORDS: LazyLock<Trie> = LazyLock::new(|| {
 });
 
 impl Stats {
-	pub fn process(&mut self, file: &str) {
-		let Ok(text) = fs::read_to_string(&file) else {
-			self.failed_file_count += 1;
-			return;
-		};
-		self.file_count += 1;
+	pub fn process(&mut self, text: &str) {
 		// self.muncher(&text);
 		self.for_loops(&text);
 	}
@@ -166,20 +161,25 @@ impl Stats {
 #[tokio::main]
 async fn main() {
 	let files = env::args().skip(1);
-
+	let mut stats = Stats::default();
 	let mut rx = {
 		let (tx, rx) = mpsc::unbounded_channel();
 		for file in files {
+			//reading files not sequentially average shaves 30ms (of 1250ms), and that's on a NVMe SSD so why not
+			let Ok(text) = fs::read_to_string(&file) else {
+				stats.failed_file_count += 1;
+				continue;
+			};
+			stats.file_count += 1;
 			let tx = tx.clone();
 			tokio::spawn(async move {
 				let mut stats = Stats::default();
-				stats.process(&file);
+				stats.process(&text);
 				tx.send(stats).unwrap();
 			});
 		}
 		rx
 	};
-	let mut stats = Stats::default();
 	while let Some(file_stat) = rx.recv().await {
 		stats += file_stat;
 	}