diff --git a/Core/Parametrization/INode.cpp b/Core/Parametrization/INode.cpp
index 3fffeb24679331c37cc69666889c9d0a985300a1..663429f9fb0c84b5fb0adf24a1ba6b04be925803 100644
--- a/Core/Parametrization/INode.cpp
+++ b/Core/Parametrization/INode.cpp
@@ -89,7 +89,7 @@ ParameterPool* INode::createParameterTree() const
 {
     std::unique_ptr<ParameterPool> result(new ParameterPool);
 
-    SampleTreeIterator<SampleIteratorPreorderStrategy> it(this);
+    NodeIterator<SampleIteratorPreorderStrategy> it(this);
     it.first();
     while (!it.isDone()) {
         const INode *child = it.getCurrent();
diff --git a/Core/Parametrization/INodeVisitor.cpp b/Core/Parametrization/INodeVisitor.cpp
index 359cc17ed890a0f366b587967bbd169b48d356d9..a702feb8ff286821a530740d908c5872d301a1e5 100644
--- a/Core/Parametrization/INodeVisitor.cpp
+++ b/Core/Parametrization/INodeVisitor.cpp
@@ -18,7 +18,7 @@
 
 void VisitSampleTreePreorder(const INode& node, INodeVisitor& visitor)
 {
-    SampleTreeIterator<SampleIteratorPreorderStrategy> it(&node);
+    NodeIterator<SampleIteratorPreorderStrategy> it(&node);
     it.first();
     while (!it.isDone()) {
         visitor.setDepth(it.depth());
@@ -30,7 +30,7 @@ void VisitSampleTreePreorder(const INode& node, INodeVisitor& visitor)
 
 void VisitSampleTreePostorder(const INode& node, INodeVisitor& visitor)
 {
-    SampleTreeIterator<SampleIteratorPostorderStrategy> it(&node);
+    NodeIterator<SampleIteratorPostorderStrategy> it(&node);
     it.first();
     while (!it.isDone()) {
         visitor.setDepth(it.depth());
diff --git a/Core/Parametrization/NodeUtils.cpp b/Core/Parametrization/NodeUtils.cpp
index cb0c5dc58d8a2393389d6977b972041ff83f7f38..f82ada26153b84f8b40da9810e101497253ac27a 100644
--- a/Core/Parametrization/NodeUtils.cpp
+++ b/Core/Parametrization/NodeUtils.cpp
@@ -66,7 +66,7 @@ std::string NodeUtils::nodeToString(const INode& node)
 {
     std::ostringstream result;
 
-    SampleTreeIterator<SampleIteratorPreorderStrategy> it(&node);
+    NodeIterator<SampleIteratorPreorderStrategy> it(&node);
     it.first();
     while (!it.isDone()) {
         const INode *child = it.getCurrent();
diff --git a/Core/Parametrization/SampleTreeIterator.cpp b/Core/Parametrization/SampleTreeIterator.cpp
index e5c856726a6eee5e905a60ea490e311f53604567..9ce36ca4f397ab70e217a94050827e30c55aa120 100644
--- a/Core/Parametrization/SampleTreeIterator.cpp
+++ b/Core/Parametrization/SampleTreeIterator.cpp
@@ -16,7 +16,6 @@
 #include "SampleTreeIterator.h"
 
 
-
 IteratorState::IteratorState(const INode *single_element)
     : m_position(0)
 {
diff --git a/Core/Parametrization/SampleTreeIterator.h b/Core/Parametrization/SampleTreeIterator.h
index d51144611ad6dd3730ed3464a73d504f421372e0..9f3b0a2b828b6255495d1cb83e2bcceb556c951b 100644
--- a/Core/Parametrization/SampleTreeIterator.h
+++ b/Core/Parametrization/SampleTreeIterator.h
@@ -3,7 +3,7 @@
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
 //! @file      Core/Scattering/SampleTreeIterator.h
-//! @brief     Defines classes IteratorState, IteratorMemento and SampleTreeIterator.
+//! @brief     Defines classes IteratorState, IteratorMemento and NodeIterator.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -13,8 +13,8 @@
 //
 // ************************************************************************** //
 
-#ifndef SAMPLETREEITERATOR_H
-#define SAMPLETREEITERATOR_H
+#ifndef NODEITERATOR_H
+#define NODEITERATOR_H
 
 #include "INode.h"
 #include <ostream>
@@ -82,11 +82,11 @@ protected:
 //! @ingroup samples_internal
 
 template <class Strategy>
-class BA_CORE_API_ SampleTreeIterator
+class BA_CORE_API_ NodeIterator
 {
 public:
-    SampleTreeIterator(const INode *root);
-    virtual ~SampleTreeIterator() {}
+    NodeIterator(const INode *root);
+    virtual ~NodeIterator() {}
 
     void first();
     void next();
@@ -100,39 +100,39 @@ protected:
 };
 
 template <class Strategy>
-inline SampleTreeIterator<Strategy>::SampleTreeIterator(const INode *root)
+inline NodeIterator<Strategy>::NodeIterator(const INode *root)
     : mp_root(root)
 {
 }
 
 template <class Strategy>
-inline void SampleTreeIterator<Strategy>::first()
+inline void NodeIterator<Strategy>::first()
 {
     m_memento_itor = m_strategy.first(mp_root);
 }
 
 template <class Strategy>
-inline void SampleTreeIterator<Strategy>::next()
+inline void NodeIterator<Strategy>::next()
 {
     m_strategy.next(m_memento_itor);
 }
 
 template <class Strategy>
-inline const INode *SampleTreeIterator<Strategy>::getCurrent()
+inline const INode *NodeIterator<Strategy>::getCurrent()
 {
     return m_memento_itor.getCurrent();
 }
 
 template <class Strategy>
-inline bool SampleTreeIterator<Strategy>::isDone() const
+inline bool NodeIterator<Strategy>::isDone() const
 {
     return m_memento_itor.size()==0;
 }
 
 template <class Strategy>
-inline size_t SampleTreeIterator<Strategy>::depth() const
+inline size_t NodeIterator<Strategy>::depth() const
 {
     return m_memento_itor.size();
 }
 
-#endif // SAMPLETREEITERATOR_H
+#endif // NODEITERATOR_H