diff --git a/include/aidge/graphRegex/GraphRegex.hpp b/include/aidge/graphRegex/GraphRegex.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..a66df9f465608bd338a20e7608851a2f02da849c
--- /dev/null
+++ b/include/aidge/graphRegex/GraphRegex.hpp
@@ -0,0 +1,61 @@
+#ifndef AIDGE_CORE_GRAPH_REGEX_H_
+#define AIDGE_CORE_GRAPH_PARSER_H_
+
+#include <string>
+
+#include "aidge/graphRegex/matchFsm/MatchResult.hpp"
+#include "aidge/graph/GraphView.hpp"
+#include "aidge/graph/Node.hpp"
+
+namespace Aidge{
+
+/**
+ * @brief class which is the hight level interface for graph matching, used to simplify match definition  
+ * 
+ */
+class GraphParser{
+
+    private:
+
+
+    public:
+    GraphParser();
+    virtual ~GraphParser() = default;
+
+    /**
+     * @brief add a topology query to the match 
+     * @param query the topology query to find 
+    **/
+    void addQuery(const std::string query);
+   
+   /**
+     * @brief get all the types of a graph and set it as type key in the query 
+     * @param Reference graph use to get all the node types 
+    **/
+    void setKeyGraphOp(std::shared_ptr<GraphView> Reference);
+
+   /**
+     * @brief set a node test manually 
+     * @param key the ref of this test used in the query
+     * @param ConditionalExpressions expression to test the node 
+    **/
+    void setQueryKey(const std::string key, const std::string ConditionalExpressions );
+
+    /**
+     * @brief set a specific lambda that can be used in setQueryKey
+     * @param key ref to the lambda to use in the 
+     * @param f expression to test the node ConditionalExpressions
+    **/
+    void setKeyLambda(const std::string key,std::function<bool(Aidge::NodePtr)> f);
+
+    /***
+     *  @brief brief match the querys in the graph 
+     *  @param Reference the graph were the querys in search 
+    */
+    std::shared_ptr<MatchResult> match(std::shared_ptr<GraphView> Reference);
+
+};
+}
+
+
+#endif //AIDGE_CORE_GRAPH_PARSER_H_
\ No newline at end of file
diff --git a/unit_tests/graphRegex/Test_GraphRegex.cpp b/unit_tests/graphRegex/Test_GraphRegex.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7a2fdc3805baf187cd6b13730f106c7b25c56cf8
--- /dev/null
+++ b/unit_tests/graphRegex/Test_GraphRegex.cpp
@@ -0,0 +1,15 @@
+
+#include <catch2/catch_test_macros.hpp>
+#include "aidge/graphRegex/GraphRegex.hpp"
+
+
+
+using namespace Aidge;
+
+TEST_CASE("GraphRegex") {
+
+    SECTION("Empty") {
+
+        
+    }
+}
\ No newline at end of file