diff --git a/arm_compute/graph/INodeVisitor.h b/arm_compute/graph/INodeVisitor.h
index 338de7a..85da590 100644
--- a/arm_compute/graph/INodeVisitor.h
+++ b/arm_compute/graph/INodeVisitor.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -191,124 +191,40 @@
 
 #ifndef DOXYGEN_SKIP_THIS
     // Inherited methods overridden
-    virtual void visit(INode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(ActivationLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(BatchNormalizationLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(ConcatenateLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(ConstNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(ConvolutionLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(DequantizationLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(DetectionOutputLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(DetectionPostProcessLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(DepthwiseConvolutionLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(EltwiseLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(FlattenLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(FullyConnectedLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(FusedConvolutionBatchNormalizationNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(FusedDepthwiseConvolutionBatchNormalizationNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(InputNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(NormalizationLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(OutputNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(PermuteLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(PoolingLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(PReluLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(PrintLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(PriorBoxLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(QuantizationLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(ReshapeLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(SoftmaxLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(SplitLayerNode &) override
-    {
-        default_visit();
-    }
-    virtual void visit(StackLayerNode &) override
-    {
-        default_visit();
-    }
+    virtual void visit(INode &n) override;
+    virtual void visit(ActivationLayerNode &n) override;
+    virtual void visit(BatchNormalizationLayerNode &n) override;
+    virtual void visit(ConcatenateLayerNode &n) override;
+    virtual void visit(ConstNode &n) override;
+    virtual void visit(ConvolutionLayerNode &n) override;
+    virtual void visit(DequantizationLayerNode &n) override;
+    virtual void visit(DetectionOutputLayerNode &n) override;
+    virtual void visit(DetectionPostProcessLayerNode &n) override;
+    virtual void visit(DepthwiseConvolutionLayerNode &n) override;
+    virtual void visit(EltwiseLayerNode &n) override;
+    virtual void visit(FlattenLayerNode &n) override;
+    virtual void visit(FullyConnectedLayerNode &n) override;
+    virtual void visit(FusedConvolutionBatchNormalizationNode &n) override;
+    virtual void visit(FusedDepthwiseConvolutionBatchNormalizationNode &n) override;
+    virtual void visit(InputNode &n) override;
+    virtual void visit(NormalizationLayerNode &n) override;
+    virtual void visit(OutputNode &n) override;
+    virtual void visit(PermuteLayerNode &n) override;
+    virtual void visit(PoolingLayerNode &n) override;
+    virtual void visit(PReluLayerNode &n) override;
+    virtual void visit(PrintLayerNode &n) override;
+    virtual void visit(PriorBoxLayerNode &n) override;
+    virtual void visit(QuantizationLayerNode &n) override;
+    virtual void visit(ReshapeLayerNode &n) override;
+    virtual void visit(SoftmaxLayerNode &n) override;
+    virtual void visit(SplitLayerNode &n) override;
+    virtual void visit(StackLayerNode &n) override;
 #endif /* DOXYGEN_SKIP_THIS */
 
     /** Function to be overloaded by the client and implement default behavior for the
      *  non-overloaded visitors
      */
-    virtual void default_visit() = 0;
+    virtual void default_visit(INode &n) = 0;
 };
 } // namespace graph
 } // namespace arm_compute
