diff --git a/src/language/node_processor/ASTNodeExpressionListProcessor.hpp b/src/language/node_processor/ASTNodeExpressionListProcessor.hpp
index 713eda89aec0804efb4bcd323cb9a65c10b8967d..21823176e8b7f8d9eb0c0760c52ae0fb1749f0e3 100644
--- a/src/language/node_processor/ASTNodeExpressionListProcessor.hpp
+++ b/src/language/node_processor/ASTNodeExpressionListProcessor.hpp
@@ -87,7 +87,7 @@ class ASTNodeExpressionListProcessor final : public INodeProcessor
     }
 
     Assert(list_values.size() == m_number_of_values);
-    return DataVariant{std::move(list_values)};
+    return AggregateDataVariant{std::move(list_values)};
   }
 
   ASTNodeExpressionListProcessor(ASTNode& node) : m_node{node}, m_number_of_values{this->_getNumberOfValues()} {}
diff --git a/src/language/node_processor/FunctionProcessor.hpp b/src/language/node_processor/FunctionProcessor.hpp
index c6c81d2938e9f774f0315f6a9af5c2e03c6a19e5..16e65e6e1e1ca63a7e1fa57e109856b3da25610a 100644
--- a/src/language/node_processor/FunctionProcessor.hpp
+++ b/src/language/node_processor/FunctionProcessor.hpp
@@ -124,7 +124,7 @@ class FunctionProcessor : public INodeProcessor
       for (auto& function_expression_processor : m_function_expression_processors) {
         list_values.emplace_back(function_expression_processor->execute(context_exec_policy));
       }
-      return DataVariant{std::move(list_values)};
+      return AggregateDataVariant{std::move(list_values)};
     }
   }
 
diff --git a/src/language/utils/BuiltinFunctionEmbedder.hpp b/src/language/utils/BuiltinFunctionEmbedder.hpp
index 265379a368ef3b7f847cd8de2b763a70b525f8a4..ac3ba21fe241f8ea9416192fc0ce97f865bb0883 100644
--- a/src/language/utils/BuiltinFunctionEmbedder.hpp
+++ b/src/language/utils/BuiltinFunctionEmbedder.hpp
@@ -204,7 +204,7 @@ class BuiltinFunctionEmbedder<FX(Args...)> : public IBuiltinFunctionEmbedder
     std::apply([&](auto&&... result) { ((vector_result.emplace_back(_resultToDataVariant(result))), ...); },
                tuple_result);
 
-    return vector_result;
+    return AggregateDataVariant{std::move(vector_result)};
   }
 
  public:
@@ -337,7 +337,7 @@ class BuiltinFunctionEmbedder<FX(void)> : public IBuiltinFunctionEmbedder
     std::apply([&](auto&&... result) { ((vector_result.emplace_back(_resultToDataVariant(result))), ...); },
                tuple_result);
 
-    return vector_result;
+    return AggregateDataVariant{std::move(vector_result)};
   }
 
  public:
diff --git a/src/language/utils/DataVariant.hpp b/src/language/utils/DataVariant.hpp
index 964044c6121478b4247c089a45eaf3ebe025195e..9a09cad6fc531b1cf8a5c3de8b09bfad5487ccf0 100644
--- a/src/language/utils/DataVariant.hpp
+++ b/src/language/utils/DataVariant.hpp
@@ -97,7 +97,7 @@ class AggregateDataVariant   // LCOV_EXCL_LINE
   AggregateDataVariant& operator=(const AggregateDataVariant&) = default;
   AggregateDataVariant& operator=(AggregateDataVariant&&) = default;
 
-  AggregateDataVariant(std::vector<DataVariant>&& data_vector) : m_data_vector{data_vector} {}
+  explicit AggregateDataVariant(std::vector<DataVariant>&& data_vector) : m_data_vector{data_vector} {}
 
   AggregateDataVariant(const AggregateDataVariant&) = default;
   AggregateDataVariant(AggregateDataVariant&&)      = default;