diff --git a/1.3/HalPolicy.cpp b/1.3/HalPolicy.cpp
index 9a9f2ac..d58ac6c 100644
--- a/1.3/HalPolicy.cpp
+++ b/1.3/HalPolicy.cpp
@@ -98,7 +98,7 @@
         case V1_3::OperationType::MAXIMUM:
             return ConvertMaximum(operation, model, data);
         case V1_3::OperationType::MEAN:
-            return ConvertReduce(operation, model, data, ReduceOperation::Mean);
+            return ConvertMean(operation, model, data);
         case V1_3::OperationType::MINIMUM:
             return ConvertMinimum(operation, model, data);
         case V1_3::OperationType::MUL:
@@ -365,11 +365,10 @@
     return ::ConvertMaximum<hal_1_3::HalPolicy>(operation, model, data);
 }
 
-bool HalPolicy::ConvertReduce(const Operation& operation, const Model& model, ConversionData& data,
-                              ReduceOperation reduceOperation)
+bool HalPolicy::ConvertMean(const Operation& operation, const Model& model, ConversionData& data)
 {
-    ALOGV("hal_1_3::HalPolicy::ConvertReduce()");
-    return ::ConvertReduce<hal_1_3::HalPolicy>(operation, model, data, reduceOperation);
+    ALOGV("hal_1_3::HalPolicy::ConvertMean()");
+    return ::ConvertMean<hal_1_3::HalPolicy>(operation, model, data);
 }
 
 bool HalPolicy::ConvertMinimum(const Operation& operation, const Model& model, ConversionData& data)
@@ -426,6 +425,15 @@
     return ::ConvertRank<hal_1_3::HalPolicy>(operation, model, data);
 }
 
+bool HalPolicy::ConvertReduce(const Operation& operation,
+                              const Model& model,
+                              ConversionData& data,
+                              ReduceOperation reduceOperation)
+{
+    ALOGV("hal_1_3::HalPolicy::ConvertReduce()");
+    return ::ConvertReduce<hal_1_3::HalPolicy>(operation, model, data, reduceOperation);
+}
+
 bool HalPolicy::ConvertReLu(const Operation& operation, const Model& model, ConversionData& data)
 {
     ALOGV("hal_1_3::HalPolicy::ConvertReLu()");
