diff --git a/src/yaml/parser_yaml.cpp b/src/yaml/parser_yaml.cpp
index 2d1aa8200790d5d5484b7c24c1f8dc78304a3218..d37d8c022de839efbdeddbdacae80007168a282e 100644
--- a/src/yaml/parser_yaml.cpp
+++ b/src/yaml/parser_yaml.cpp
@@ -497,13 +497,11 @@ void ParserYAML::parse()
 
     YAML::Node n;
     n = loadYAML(generatePath(file_));
-
     if (n.Type() == YAML::NodeType::Map)
     {
         for (auto it : n)
         {
             auto node = it.second;
-            // WOLF_INFO("WUT ", it.first);
             std::vector<std::string> tags = std::vector<std::string>();
             if (it.first.as<std::string>() != "config")
                 walkTreeR(node, tags, it.first.as<std::string>());
@@ -515,7 +513,15 @@ void ParserYAML::parse()
                     if (node_key != "problem" and node_key != "sensors" and node_key != "processors" and
                         node_key != "ROS subscriber" and node_key != "ROS publisher")
                     {
-                        walkTreeR(itt.second, tags, node_key);
+                        std::regex rr("follow");
+                        if (not std::regex_match(node_key, rr))
+                        {
+                            walkTreeR(itt.second, tags, node_key);
+                        }
+                        else
+                        {
+                            walkTree(itt.second.as<std::string>(), tags, "");
+                        }
                     }
                 }
             }