diff --git a/arm_compute/graph/DataLayerVisitor.h b/arm_compute/graph/DataLayerVisitor.h
new file mode 100644
index 0000000..670b9f0
--- /dev/null
+++ b/arm_compute/graph/DataLayerVisitor.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2021 Arm Limited.
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef ARM_COMPUTE_GRAPH_DATALAYERPRINTER_H
+#define ARM_COMPUTE_GRAPH_DATALAYERPRINTER_H
+
+#include "arm_compute/graph/IGraphPrinter.h"
+#include "arm_compute/graph/INodeVisitor.h"
+#include "arm_compute/graph/Types.h"
+
+namespace arm_compute
+{
+namespace graph
+{
+/** Graph printer visitor. */
+class DataLayerVisitor final : public DefaultNodeVisitor
+{
+public:
+    using LayerData = std::map<std::string, std::string>;
+    /** Default Constructor **/
+    DataLayerVisitor() = default;
+
+    const LayerData &layer_data() const;
+
+    // Reveal Parent method
+    using DefaultNodeVisitor::visit;
+    // Inherited methods overridden
+    void visit(ConvolutionLayerNode &n) override;
+    void visit(DepthwiseConvolutionLayerNode &n) override;
+    void visit(FusedConvolutionBatchNormalizationNode &n) override;
+    void visit(FusedDepthwiseConvolutionBatchNormalizationNode &n) override;
+    void visit(OutputNode &n) override;
+
+    void default_visit(INode &n) override;
+
+private:
+    LayerData _layer_data{};
+};
+} // namespace graph
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_GRAPH_DATALAYERPRINTER_H */
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
diff --git a/arm_compute/graph/printers/DotGraphPrinter.h b/arm_compute/graph/printers/DotGraphPrinter.h
index d39ddad..3c9de8c 100644
--- a/arm_compute/graph/printers/DotGraphPrinter.h
+++ b/arm_compute/graph/printers/DotGraphPrinter.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018-2019 Arm Limited.
+ * Copyright (c) 2018-2019,2021 Arm Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -60,7 +60,7 @@
     void visit(FusedDepthwiseConvolutionBatchNormalizationNode &n) override;
     void visit(NormalizationLayerNode &n) override;
     void visit(PoolingLayerNode &n) override;
-    void default_visit() override;
+    void default_visit(INode &n) override;
 
 private:
     std::string _info{};
