diff --git a/arm_compute/runtime/NEON/functions/NEDepthConcatenate.h b/arm_compute/runtime/NEON/functions/NEDepthConcatenateLayer.h
similarity index 81%
rename from arm_compute/runtime/NEON/functions/NEDepthConcatenate.h
rename to arm_compute/runtime/NEON/functions/NEDepthConcatenateLayer.h
index cc65099..5b63b70 100644
--- a/arm_compute/runtime/NEON/functions/NEDepthConcatenate.h
+++ b/arm_compute/runtime/NEON/functions/NEDepthConcatenateLayer.h
@@ -26,7 +26,7 @@
 
 #include "arm_compute/runtime/IFunction.h"
 
-#include "arm_compute/core/NEON/kernels/NEDepthConcatenateKernel.h"
+#include "arm_compute/core/NEON/kernels/NEDepthConcatenateLayerKernel.h"
 #include "arm_compute/core/NEON/kernels/NEFillBorderKernel.h"
 
 #include <memory>
@@ -39,14 +39,14 @@
 /** Basic function to execute concatenate tensors along z axis. This function calls the following kernels:
  *
  * -# @ref NEFillBorderKernel (executed if input's lowest two dimensions are smaller than respective output's dimensions)
- * -# @ref NEDepthConcatenateKernel
+ * -# @ref NEDepthConcatenateLayerKernel
  *
  */
-class NEDepthConcatenate : public IFunction
+class NEDepthConcatenateLayer : public IFunction
 {
 public:
     /** Default constructor */
-    NEDepthConcatenate();
+    NEDepthConcatenateLayer();
     /** Initialise the kernel's inputs vector and output.
      *
      * @param[in,out] inputs_vector The vectors containing all the tensors to concatenate. Data types supported:  QS8/QS16/F16/F32.
@@ -58,10 +58,10 @@
     void run() override;
 
 private:
-    std::vector<ITensor *>                      _inputs_vector;
-    std::unique_ptr<NEDepthConcatenateKernel[]> _concat_kernels_vector;
-    std::unique_ptr<NEFillBorderKernel[]>       _border_handlers_vector;
-    unsigned int                                _num_inputs;
+    std::vector<ITensor *>                           _inputs_vector;
+    std::unique_ptr<NEDepthConcatenateLayerKernel[]> _concat_kernels_vector;
+    std::unique_ptr<NEFillBorderKernel[]>            _border_handlers_vector;
+    unsigned int                                     _num_inputs;
 };
 }
 #endif /* __ARM_COMPUTE_NEDEPTHCONCATENATE_H__ */
diff --git a/arm_compute/runtime/NEON/functions/NEDepthConvert.h b/arm_compute/runtime/NEON/functions/NEDepthConvertLayer.h
similarity index 90%
rename from arm_compute/runtime/NEON/functions/NEDepthConvert.h
rename to arm_compute/runtime/NEON/functions/NEDepthConvertLayer.h
index 37f7293..b235e87 100644
--- a/arm_compute/runtime/NEON/functions/NEDepthConvert.h
+++ b/arm_compute/runtime/NEON/functions/NEDepthConvertLayer.h
@@ -33,16 +33,16 @@
 {
 class ITensor;
 
-/**Basic function to run @ref NEDepthConvertKernel */
-class NEDepthConvert : public INESimpleFunction
+/**Basic function to run @ref NEDepthConvertLayerKernel */
+class NEDepthConvertLayer : public INESimpleFunction
 {
 public:
     /* Contructor */
-    NEDepthConvert() = default;
+    NEDepthConvertLayer() = default;
     /** Prevent instances of this class from being copied (As this class contains pointers)*/
-    NEDepthConvert(const NEDepthConvert &) = delete;
+    NEDepthConvertLayer(const NEDepthConvertLayer &) = delete;
     /** Prevent instances of this class from being copied (As this class contains pointers)*/
-    const NEDepthConvert &operator=(const NEDepthConvert &) = delete;
+    const NEDepthConvertLayer &operator=(const NEDepthConvertLayer &) = delete;
     /** Initialize the function's source, destination
      *
      * Valid conversions Input -> Output :
diff --git a/arm_compute/runtime/NEON/functions/NEDepthwiseConvolution.h b/arm_compute/runtime/NEON/functions/NEDepthwiseConvolutionLayer.h
similarity index 92%
rename from arm_compute/runtime/NEON/functions/NEDepthwiseConvolution.h
rename to arm_compute/runtime/NEON/functions/NEDepthwiseConvolutionLayer.h
index f2c209c..0da16ab 100644
--- a/arm_compute/runtime/NEON/functions/NEDepthwiseConvolution.h
+++ b/arm_compute/runtime/NEON/functions/NEDepthwiseConvolutionLayer.h
@@ -24,7 +24,7 @@
 #ifndef __ARM_COMPUTE_NEDEPTHWISECONVOLUTION_H__
 #define __ARM_COMPUTE_NEDEPTHWISECONVOLUTION_H__
 
-#include "arm_compute/core/NEON/kernels/NEDepthwiseConvolution3x3Kernel.h"
+#include "arm_compute/core/NEON/kernels/NEDepthwiseConvolutionLayer3x3Kernel.h"
 #include "arm_compute/core/NEON/kernels/NEDepthwiseIm2ColKernel.h"
 #include "arm_compute/core/NEON/kernels/NEDepthwiseVectorToTensorKernel.h"
 #include "arm_compute/core/NEON/kernels/NEDepthwiseWeightsReshapeKernel.h"
@@ -43,15 +43,15 @@
 
 /** Basic function to execute a depthwise convolution for kernel size 3x3xC. This function calls the following NEON kernels:
  *
- * -# @ref NEDepthwiseConvolution3x3
+ * -# @ref NEDepthwiseConvolutionLayer3x3
  * -# @ref NEFillBorderKernel (if pad_x or pad_y > 0)
  *
  */
-class NEDepthwiseConvolution3x3 : public IFunction
+class NEDepthwiseConvolutionLayer3x3 : public IFunction
 {
 public:
     /** Default constructor */
-    NEDepthwiseConvolution3x3();
+    NEDepthwiseConvolutionLayer3x3();
     /** Initialize the function's source, destination, kernels and border_size.
      *
      * @param[in, out] input     Source tensor. Data type supported: F32. (Written to only for border filling).
@@ -67,7 +67,7 @@
     void run() override;
 
 private:
-    NEDepthwiseConvolution3x3Kernel              _kernel;
+    NEDepthwiseConvolutionLayer3x3Kernel         _kernel;
     NEDirectConvolutionLayerBiasAccumulateKernel _bias_kernel;
     NEFillBorderKernel                           _border_handler;
     bool                                         _has_bias;
@@ -81,11 +81,11 @@
  * -# @ref NEFillBorderKernel (if pad_x or pad_y > 0)
  *
  */
-class NEDepthwiseConvolution : public IFunction
+class NEDepthwiseConvolutionLayer : public IFunction
 {
 public:
     /** Default constructor */
-    NEDepthwiseConvolution();
+    NEDepthwiseConvolutionLayer();
     /** Initialize the function's source, destination, weights and convolution information.
      *
      * @param[in, out] input     Source tensor. Data type supported: F32. (Written to only for border filling).
diff --git a/arm_compute/runtime/NEON/functions/NEDepthwiseSeparableConvolutionLayer.h b/arm_compute/runtime/NEON/functions/NEDepthwiseSeparableConvolutionLayer.h
index 3f4c138..0562c07 100644
--- a/arm_compute/runtime/NEON/functions/NEDepthwiseSeparableConvolutionLayer.h
+++ b/arm_compute/runtime/NEON/functions/NEDepthwiseSeparableConvolutionLayer.h
@@ -27,7 +27,7 @@
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/IFunction.h"
 #include "arm_compute/runtime/NEON/INESimpleFunction.h"
-#include "arm_compute/runtime/NEON/functions/NEDepthwiseConvolution.h"
+#include "arm_compute/runtime/NEON/functions/NEDepthwiseConvolutionLayer.h"
 #include "arm_compute/runtime/NEON/functions/NEDirectConvolutionLayer.h"
 #include "arm_compute/runtime/Tensor.h"
 
@@ -39,7 +39,7 @@
 
 /** Basic function to execute depthwise convolution. This function calls the following NEON kernels and function:
  *
- * -# @ref NEDepthwiseConvolution
+ * -# @ref NEDepthwiseConvolutionLayer
  * -# @ref NEDirectConvolutionLayer
  *
  */
@@ -72,8 +72,8 @@
     void run() override;
 
 private:
-    NEDepthwiseConvolution   _depthwise_conv;
-    NEDirectConvolutionLayer _pointwise_conv;
+    NEDepthwiseConvolutionLayer _depthwise_conv;
+    NEDirectConvolutionLayer    _pointwise_conv;
 };
 }
 #endif /*__ARM_COMPUTE_NEON_DEPTHWISE_SEPARABLE_CONVOLUTION_H__ */
diff --git a/arm_compute/runtime/NEON/functions/NEL2Normalize.h b/arm_compute/runtime/NEON/functions/NEL2NormalizeLayer.h
similarity index 85%
rename from arm_compute/runtime/NEON/functions/NEL2Normalize.h
rename to arm_compute/runtime/NEON/functions/NEL2NormalizeLayer.h
index 95d5186..100e239 100644
--- a/arm_compute/runtime/NEON/functions/NEL2Normalize.h
+++ b/arm_compute/runtime/NEON/functions/NEL2NormalizeLayer.h
@@ -24,7 +24,7 @@
 #ifndef __ARM_COMPUTE_NEL2NORMALIZE_H__
 #define __ARM_COMPUTE_NEL2NORMALIZE_H__
 
-#include "arm_compute/core/NEON/kernels/NEL2NormalizeKernel.h"
+#include "arm_compute/core/NEON/kernels/NEL2NormalizeLayerKernel.h"
 #include "arm_compute/runtime/IFunction.h"
 #include "arm_compute/runtime/IMemoryManager.h"
 #include "arm_compute/runtime/MemoryGroup.h"
@@ -41,13 +41,13 @@
  *
  * This function runs the following kernels:
  * -# @ref NEReductionOperation
- * -# @ref NEL2NormalizeKernel
+ * -# @ref NEL2NormalizeLayerKernel
  */
-class NEL2Normalize : public IFunction
+class NEL2NormalizeLayer : public IFunction
 {
 public:
     /** Constructor */
-    NEL2Normalize(std::shared_ptr<IMemoryManager> memory_manager = nullptr);
+    NEL2NormalizeLayer(std::shared_ptr<IMemoryManager> memory_manager = nullptr);
     /** Set the input and output tensors.
      *
      * @param[in, out] input   Source tensor. Data types supported: F32. (Written to only for border_size != 0)
@@ -61,10 +61,10 @@
     void run() override;
 
 private:
-    MemoryGroup          _memory_group;
-    NEReductionOperation _reduce_func;
-    NEL2NormalizeKernel  _normalize_kernel;
-    Tensor               _sumsq;
+    MemoryGroup              _memory_group;
+    NEReductionOperation     _reduce_func;
+    NEL2NormalizeLayerKernel _normalize_kernel;
+    Tensor                   _sumsq;
 };
 }
 #endif /* __ARM_COMPUTE_NEL2NORMALIZE_H__ */
diff --git a/arm_compute/runtime/NEON/functions/NELaplacianPyramid.h b/arm_compute/runtime/NEON/functions/NELaplacianPyramid.h
index 991ae7c..baa4b7b 100644
--- a/arm_compute/runtime/NEON/functions/NELaplacianPyramid.h
+++ b/arm_compute/runtime/NEON/functions/NELaplacianPyramid.h
@@ -27,7 +27,7 @@
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/IFunction.h"
 #include "arm_compute/runtime/NEON/functions/NEArithmeticSubtraction.h"
-#include "arm_compute/runtime/NEON/functions/NEDepthConvert.h"
+#include "arm_compute/runtime/NEON/functions/NEDepthConvertLayer.h"
 #include "arm_compute/runtime/NEON/functions/NEGaussian5x5.h"
 #include "arm_compute/runtime/NEON/functions/NEGaussianPyramid.h"
 #include "arm_compute/runtime/Pyramid.h"
@@ -79,7 +79,7 @@
     std::unique_ptr<NEArithmeticSubtraction[]> _subf;
     Pyramid                                    _gauss_pyr;
     Pyramid                                    _conv_pyr;
-    NEDepthConvert                             _depth_function;
+    NEDepthConvertLayer                        _depth_function;
 };
 }
 #endif /*__ARM_COMPUTE_NELAPLACIANPYRAMID_H__ */
diff --git a/arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h b/arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h
index 4139733..3d42360 100644
--- a/arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h
+++ b/arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h
@@ -27,7 +27,7 @@
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/IFunction.h"
 #include "arm_compute/runtime/NEON/functions/NEArithmeticAddition.h"
-#include "arm_compute/runtime/NEON/functions/NEDepthConvert.h"
+#include "arm_compute/runtime/NEON/functions/NEDepthConvertLayer.h"
 #include "arm_compute/runtime/NEON/functions/NEScale.h"
 #include "arm_compute/runtime/Pyramid.h"
 
@@ -43,7 +43,7 @@
  *
  * -# @ref NEArithmeticAddition
  * -# @ref NEScale
- * -# @ref NEDepthConvert
+ * -# @ref NEDepthConvertLayer
  *
  * This function reconstructs the original image from a Laplacian Image Pyramid.
  *
@@ -85,7 +85,7 @@
     Pyramid                                 _tmp_pyr;
     std::unique_ptr<NEArithmeticAddition[]> _addf;
     std::unique_ptr<NEScale[]>              _scalef;
-    NEDepthConvert                          _depthf;
+    NEDepthConvertLayer                     _depthf;
 };
 }
 #endif /*__ARM_COMPUTE_NELAPLACIANRECONSTRUCT_H__ */
