diff --git a/borded_cpp/src/main.cpp b/borded_cpp/src/main.cpp
index d5a18a6..64cd655 100644
--- a/borded_cpp/src/main.cpp
+++ b/borded_cpp/src/main.cpp
@@ -1,4 +1,12 @@
-import std;
+#include <vector>
+#include <string>
+#include <string_view>
+#include <fstream>
+#include <algorithm>
+#include <iostream>
+#include <numeric>
+#include <execution>
+#include <format>
 
 const std::vector<std::wstring_view> BAD_WORDS = {
     L"recovery",
@@ -38,7 +46,6 @@ const std::vector<std::wstring_view> BAD_WORDS = {
     L"funds",
 };
 
-
 struct AnalysisResult {
     std::size_t totalWordCount = 0;
     std::size_t totalCapitalizedCount = 0;
@@ -64,6 +71,16 @@ struct AnalysisResult {
     }
 };
 
+// Overloaded operator<< for AnalysisResult
+std::ostream& operator<<(std::ostream& os, const AnalysisResult& result) {
+    os << "Word Count: " << result.totalWordCount << "\n"
+       << "Capitalized Count: " << result.totalCapitalizedCount << "\n"
+       << "Sentence Count: " << result.totalSentenceCount << "\n"
+       << "Number Count: " << result.totalNumberCount << "\n"
+       << "Forbidden Count: " << result.totalForbiddenCount;
+    return os;
+}
+
 void check_word(const std::wstring &word, std::size_t &forbiddenCount) {
     if (std::find(BAD_WORDS.begin(), BAD_WORDS.end(), word) != BAD_WORDS.end()) {
         forbiddenCount++;
@@ -73,9 +90,9 @@ void check_word(const std::wstring &word, std::size_t &forbiddenCount) {
 AnalysisResult parseFile(const std::string_view &filename) {
     std::wifstream file;
 
-    file.open(filename);
+    file.open(std::string(filename)); // Modified line
     if (!file.is_open()) {
-        std::println("File doesn't exist: {}", filename);
+        std::cout << "File doesn't exist: " << filename << std::endl;
         return { };
     }
 
@@ -127,7 +144,7 @@ AnalysisResult parseFile(const std::string_view &filename) {
 
 int main(const int argc, char *argv[]) {
     if (argc < 2) {
-        std::println("Usage: {} <file1> <file2> ... <fileN>", argv[0]);
+        std::cout << "Usage: " << argv[0] << " <file1> <file2> ... <fileN>" << std::endl;
         return 1;
     }
 
@@ -135,6 +152,6 @@ int main(const int argc, char *argv[]) {
                                                         parseFile
         );
 
-    std::println("{}", std::string(result));
+    std::cout << result << std::endl; // This will now work
     return 0;
-}
+}
\ No newline at end of file