diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index 1c0725243b881367e78c0c83cf321bd774f76e28..35b5e38e521d5cd273f7d03a78895107ece113dc 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -754,12 +754,6 @@ NumConstNode::substituteStaticAuxiliaryVariable() const
   return const_cast<NumConstNode *>(this);
 }
 
-void
-NumConstNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
-{
-  return;
-}
-
 expr_t
 NumConstNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
 {
@@ -2039,12 +2033,6 @@ VariableNode::getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const
       model_endos_and_lags[varname] = lag;
 }
 
-void
-VariableNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
-{
-  return;
-}
-
 expr_t
 VariableNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
 {
@@ -3832,12 +3820,6 @@ UnaryOpNode::substituteStaticAuxiliaryVariable() const
     return buildSimilarUnaryOpNode(argsubst, datatree);
 }
 
-void
-UnaryOpNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
-{
-  arg->findConstantEquations(table);
-}
-
 expr_t
 UnaryOpNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
 {
@@ -5624,11 +5606,6 @@ BinaryOpNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table)
       else if (dynamic_cast<VariableNode *>(arg2) && dynamic_cast<NumConstNode *>(arg1))
         table[dynamic_cast<VariableNode *>(arg2)] = dynamic_cast<NumConstNode *>(arg1);
     }
-  else
-    {
-      arg1->findConstantEquations(table);
-      arg2->findConstantEquations(table);
-    }
 }
 
 expr_t
@@ -6559,14 +6536,6 @@ TrinaryOpNode::substituteStaticAuxiliaryVariable() const
   return buildSimilarTrinaryOpNode(arg1subst, arg2subst, arg3subst, datatree);
 }
 
-void
-TrinaryOpNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
-{
-  arg1->findConstantEquations(table);
-  arg2->findConstantEquations(table);
-  arg3->findConstantEquations(table);
-}
-
 expr_t
 TrinaryOpNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
 {
@@ -7165,13 +7134,6 @@ AbstractExternalFunctionNode::substituteStaticAuxiliaryVariable() const
   return buildSimilarExternalFunctionNode(arguments_subst, datatree);
 }
 
-void
-AbstractExternalFunctionNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
-{
-  for (auto argument : arguments)
-    argument->findConstantEquations(table);
-}
-
 expr_t
 AbstractExternalFunctionNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
 {
@@ -8568,12 +8530,6 @@ VarExpectationNode::substituteStaticAuxiliaryVariable() const
   return const_cast<VarExpectationNode *>(this);
 }
 
-void
-VarExpectationNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
-{
-  return;
-}
-
 expr_t
 VarExpectationNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
 {
@@ -8955,12 +8911,6 @@ PacExpectationNode::substituteStaticAuxiliaryVariable() const
   return const_cast<PacExpectationNode *>(this);
 }
 
-void
-PacExpectationNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
-{
-  return;
-}
-
 expr_t
 PacExpectationNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
 {
diff --git a/src/ExprNode.hh b/src/ExprNode.hh
index 677abd6e684dbebd82783241ebe298b796f90a3b..03b94bae5d91d23fa2c3dd6dae58869f471690fc 100644
--- a/src/ExprNode.hh
+++ b/src/ExprNode.hh
@@ -674,10 +674,7 @@ public:
                               map<tuple<int, int, int>, expr_t> &A0,
                               map<tuple<int, int, int>, expr_t> &A0star) const;
 
-  //! Finds equations where a variable is equal to a constant
-  virtual void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const = 0;
-
-  //! Replaces variables found in findConstantEquations() with their constant values
+  //! Replaces variables found in BinaryOpNode::findConstantEquations() with their constant values
   virtual expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const = 0;
 
   //! Returns true if PacExpectationNode encountered
@@ -802,7 +799,6 @@ public:
   expr_t clone(DataTree &datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
   bool containsPacExpectation(const string &pac_model_name = "") const override;
   bool isParamTimesEndogExpr() const override;
@@ -878,7 +874,6 @@ public:
   expr_t clone(DataTree &datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
   bool containsPacExpectation(const string &pac_model_name = "") const override;
   bool isParamTimesEndogExpr() const override;
@@ -985,7 +980,6 @@ public:
   expr_t clone(DataTree &datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
   bool containsPacExpectation(const string &pac_model_name = "") const override;
   bool isParamTimesEndogExpr() const override;
@@ -1103,7 +1097,8 @@ public:
   expr_t getNonZeroPartofEquation() const;
   bool isInStaticForm() const override;
   void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const;
-  void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
+  //! Finds equations where a variable is equal to a constant
+  void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
   bool containsPacExpectation(const string &pac_model_name = "") const override;
   /*
@@ -1227,7 +1222,6 @@ public:
   expr_t clone(DataTree &datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
   bool containsPacExpectation(const string &pac_model_name = "") const override;
   bool isParamTimesEndogExpr() const override;
@@ -1342,7 +1336,6 @@ public:
   expr_t clone(DataTree &datatree) const override = 0;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
   bool containsPacExpectation(const string &pac_model_name = "") const override;
   bool isParamTimesEndogExpr() const override;
@@ -1527,7 +1520,6 @@ public:
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
   bool containsPacExpectation(const string &pac_model_name = "") const override;
   bool isParamTimesEndogExpr() const override;
@@ -1603,7 +1595,6 @@ public:
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
   bool containsPacExpectation(const string &pac_model_name = "") const override;
   bool isParamTimesEndogExpr() const override;