diff --git a/src/ast_handlers.hpp b/src/ast_handlers.hpp
index 0ab9a35..7d38d73 100644
--- a/src/ast_handlers.hpp
+++ b/src/ast_handlers.hpp
@@ -44,19 +44,7 @@
     }
 };
 
-struct node_identifier_class {
-    template <typename T, typename Iterator, typename Context>
-    void on_success(Iterator const&, Iterator const&, T&, Context const& context)
-    {
-        auto& parserContext = x3::get<parser_context_tag>(context);
-
-        if (!parserContext.m_topLevelModulePresent) {
-            if (parserContext.m_errorMsg.empty())
-                parserContext.m_errorMsg = "You have to specify a top level module.";
-            _pass(context) = false;
-        }
-    }
-};
+struct node_identifier_class;
 
 struct key_identifier_class {
     template <typename T, typename Iterator, typename Context>
@@ -130,7 +118,6 @@
 
         if (schema.isModule(ast.m_name)) {
             parserContext.m_curModule = ast.m_name;
-            parserContext.m_topLevelModulePresent = true;
         } else {
             parserContext.m_errorMsg = "Invalid module name.";
             _pass(context) = false;
