diff --git a/ArmnnDriverImpl.hpp b/ArmnnDriverImpl.hpp
index fbfbc43..7f1c9b9 100644
--- a/ArmnnDriverImpl.hpp
+++ b/ArmnnDriverImpl.hpp
@@ -5,41 +5,26 @@
 
 #pragma once
 
-#include <HalInterfaces.h>
-
 #include "DriverOptions.hpp"
 
-#include <armnn/ArmNN.hpp>
+#include <HalInterfaces.h>
 
 namespace armnn_driver
 {
 
-struct HalVersion_1_0
-{
-    using Model = ::android::hardware::neuralnetworks::V1_0::Model;
-    using getSupportedOperations_cb = ::android::hardware::neuralnetworks::V1_0::IDevice::getSupportedOperations_cb;
-};
-
-#if defined(ARMNN_ANDROID_NN_V1_1) // Using ::android::hardware::neuralnetworks::V1_1.
-struct HalVersion_1_1
-{
-    using Model = ::android::hardware::neuralnetworks::V1_1::Model;
-    using getSupportedOperations_cb = ::android::hardware::neuralnetworks::V1_1::IDevice::getSupportedOperations_1_1_cb;
-};
-#endif
-
-template <typename HalVersion>
+template<typename HalPolicy>
 class ArmnnDriverImpl
 {
 public:
-    using HalModel = typename HalVersion::Model;
-    using HalGetSupportedOperations_cb = typename HalVersion::getSupportedOperations_cb;
+    using HalModel                     = typename HalPolicy::Model;
+    using HalGetSupportedOperations_cb = typename HalPolicy::getSupportedOperations_cb;
 
     static Return<void> getSupportedOperations(
             const armnn::IRuntimePtr& runtime,
             const DriverOptions& options,
             const HalModel& model,
             HalGetSupportedOperations_cb);
+
     static Return<ErrorStatus> prepareModel(
             const armnn::IRuntimePtr& runtime,
             const armnn::IGpuAccTunedParametersPtr& clTunedParameters,
@@ -47,6 +32,7 @@
             const HalModel& model,
             const android::sp<IPreparedModelCallback>& cb,
             bool float32ToFloat16 = false);
+
     static Return<DeviceStatus> getStatus();
 };
 
