diff --git a/src/language/CFunctionEmbedder.hpp b/src/language/CFunctionEmbedder.hpp
index 5aa9fdf26a58b3dbda3bdc61b47c2826d297c0d5..37852636bd2ef4c2ff13eed800af7aaec8ed7c81 100644
--- a/src/language/CFunctionEmbedder.hpp
+++ b/src/language/CFunctionEmbedder.hpp
@@ -12,6 +12,8 @@
 struct ICFunctionEmbedder
 {
   virtual void apply(const std::vector<ASTNodeDataVariant>& x, double& f_x) = 0;
+
+  virtual ~ICFunctionEmbedder() = default;
 };
 
 template <typename FX, typename... Args>
@@ -41,6 +43,7 @@ class CFunctionEmbedder : public ICFunctionEmbedder
   PUGS_INLINE void
   _copy_from_vector(ArgsTuple& t, const std::vector<ASTNodeDataVariant>& v, std::index_sequence<I...>) const
   {
+    Assert(sizeof...(Args) == v.size());
     (_copy_value<I>(t, v), ...);
   }
 
diff --git a/src/language/node_processor/CFunctionProcessor.hpp b/src/language/node_processor/CFunctionProcessor.hpp
index 4bbda59f92461bdcefe1ebe111297c674e268216..15c56da8133f5bf1bdac5cc984b5a0fed03fb6cb 100644
--- a/src/language/node_processor/CFunctionProcessor.hpp
+++ b/src/language/node_processor/CFunctionProcessor.hpp
@@ -58,8 +58,8 @@ class CFunctionExpressionProcessor final : public INodeProcessor
   CFunctionExpressionProcessor(ASTNode& node, std::vector<ASTNodeDataVariant>& argument_values)
     : m_node{node}, m_argument_values{argument_values}
   {
-    m_embedded_function = std::make_unique<CFunctionEmbedder<double, double, double>>(
-      std::function{[](double x, double y) -> double { return std::sin(x) * std::cos(3 * x) + y; }});
+    m_embedded_function = std::make_unique<CFunctionEmbedder<double, double>>(
+      std::function{[](double x) -> double { return std::sin(x); }});
   }
 };