diff --git a/slp_service_info.hpp b/slp_service_info.hpp
new file mode 100644
index 0000000..29fe1c4
--- /dev/null
+++ b/slp_service_info.hpp
@@ -0,0 +1,52 @@
+#pragma once
+#include <iostream>
+#include <fstream>
+#include <sstream>
+namespace slp
+{
+struct ConfigData
+{
+    std::string name;
+    std::string type;
+    std::string port;
+
+    friend std::istream& operator>>(std::istream& str, ConfigData& data)
+    {
+        std::string line;
+        constexpr auto DELIMITER = " ";
+        size_t  delimtrPos = 0;
+        size_t  delimtrPrevPos = 0;
+        std::array<std::string, 3>tokens;
+        std::getline(str, line);
+        size_t count = 0;
+
+        delimtrPos = line.find(DELIMITER, delimtrPrevPos);
+        while (delimtrPos != std::string::npos)
+        {
+            tokens[count] = line.substr(delimtrPrevPos, (delimtrPos - delimtrPrevPos));
+            delimtrPrevPos = delimtrPos + 1;
+
+            delimtrPos = line.find(DELIMITER, delimtrPrevPos);
+            if (delimtrPos == std::string::npos && delimtrPrevPos < line.length())
+            {
+                delimtrPos = line.length();
+            }
+
+            count++;
+        }
+
+        if (count > 2)
+        {
+            data.name = tokens[0];
+            data.type = tokens[1];
+            data.port = tokens[2];
+        }
+        else
+        {
+            str.setstate(std::ios::failbit);
+        }
+        return str;
+    }
+
+};
+}
