diff --git a/arm_compute/core/PixelValue.h b/arm_compute/core/PixelValue.h
index 530cc16..e86eeba 100644
--- a/arm_compute/core/PixelValue.h
+++ b/arm_compute/core/PixelValue.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -39,6 +39,54 @@
         : value{ uint64_t(0) }
     {
     }
+    /** Initialize the union with a pixel value of chosen datatype
+     *
+     * @param[in] v        int value.
+     * @param[in] datatype DataType that @p v have to be stored
+     */
+    PixelValue(uint64_t v, DataType datatype)
+        : PixelValue()
+    {
+        switch(datatype)
+        {
+            case DataType::U8:
+                value.u8 = static_cast<uint8_t>(v);
+                break;
+            case DataType::S8:
+                value.s8 = static_cast<int8_t>(v);
+                break;
+            case DataType::U16:
+                value.u16 = static_cast<uint16_t>(v);
+                break;
+            case DataType::S16:
+                value.s16 = static_cast<int16_t>(v);
+                break;
+            case DataType::U32:
+                value.u32 = static_cast<uint32_t>(v);
+                break;
+            case DataType::S32:
+                value.s32 = static_cast<int32_t>(v);
+                break;
+            case DataType::U64:
+                value.u64 = static_cast<uint64_t>(v);
+                break;
+            case DataType::S64:
+                value.s16 = static_cast<int64_t>(v);
+                break;
+            case DataType::F16:
+                value.f16 = static_cast<half>(v);
+                break;
+            case DataType::F32:
+                value.f32 = static_cast<float>(v);
+                break;
+            case DataType::F64:
+                value.f64 = static_cast<double>(v);
+                break;
+            default:
+                value.u64 = v;
+                break;
+        }
+    }
     /** Initialize the union with a U8 pixel value
      *
      * @param[in] v U8 value.
diff --git a/arm_compute/core/Types.h b/arm_compute/core/Types.h
index dc87617..317c899 100644
--- a/arm_compute/core/Types.h
+++ b/arm_compute/core/Types.h
@@ -538,11 +538,12 @@
 /** Available reduction operations */
 enum class ReductionOperation
 {
-    SUM_SQUARE,  /**< Sum of squares */
-    SUM,         /**< Sum */
-    MEAN_SUM,    /**< Mean of sum */
     ARG_IDX_MAX, /**< Index of the max value */
-    ARG_IDX_MIN  /**< Index of the min value */
+    ARG_IDX_MIN, /**< Index of the min value */
+    MEAN_SUM,    /**< Mean of sum */
+    PROD,        /**< Product */
+    SUM_SQUARE,  /**< Sum of squares */
+    SUM          /**< Sum */
 };
 
 /** Available element-wise operations */
diff --git a/arm_compute/runtime/CL/functions/CLReductionOperation.h b/arm_compute/runtime/CL/functions/CLReductionOperation.h
index ac35b7b..977562d 100644
--- a/arm_compute/runtime/CL/functions/CLReductionOperation.h
+++ b/arm_compute/runtime/CL/functions/CLReductionOperation.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -76,12 +76,12 @@
 
 private:
     CLMemoryGroup                                 _memory_group;
-    std::unique_ptr<CLTensor[]>                   _sums_vector{ nullptr };
+    std::unique_ptr<CLTensor[]>                   _results_vector{ nullptr };
     std::unique_ptr<CLReductionOperationKernel[]> _reduction_kernels_vector{ nullptr };
     std::unique_ptr<CLFillBorderKernel[]>         _border_handlers_vector{ nullptr };
     unsigned int                                  _num_of_stages;
     unsigned int                                  _reduction_axis;
-    bool                                          _is_quantized;
+    bool                                          _is_serial;
 };
-}
+} // namespace arm_compute
 #endif /*__ARM_COMPUTE_CLREDUCTIONOPERATION_H__ */
