diff --git a/1.0/ArmnnDriverImpl.cpp b/1.0/ArmnnDriverImpl.cpp
index c7c0f7e..a35bb0e 100644
--- a/1.0/ArmnnDriverImpl.cpp
+++ b/1.0/ArmnnDriverImpl.cpp
@@ -8,33 +8,27 @@
 
 #include <log/log.h>
 
-using namespace std;
-using namespace android;
-using namespace android::nn;
-using namespace android::hardware;
-
 namespace
 {
 
-const char *g_Float32PerformanceExecTimeName = "ArmNN.float32Performance.execTime";
-const char *g_Float32PerformancePowerUsageName = "ArmNN.float32Performance.powerUsage";
-const char *g_Quantized8PerformanceExecTimeName = "ArmNN.quantized8Performance.execTime";
+const char *g_Float32PerformanceExecTimeName      = "ArmNN.float32Performance.execTime";
+const char *g_Float32PerformancePowerUsageName    = "ArmNN.float32Performance.powerUsage";
+const char *g_Quantized8PerformanceExecTimeName   = "ArmNN.quantized8Performance.execTime";
 const char *g_Quantized8PerformancePowerUsageName = "ArmNN.quantized8Performance.powerUsage";
 
 } // anonymous namespace
 
 namespace armnn_driver
 {
-namespace V1_0
+namespace hal_1_0
 {
 
-Return<void> ArmnnDriverImpl::getCapabilities(
-        const armnn::IRuntimePtr& runtime,
-        neuralnetworks::V1_0::IDevice::getCapabilities_cb cb)
+Return<void> ArmnnDriverImpl::getCapabilities(const armnn::IRuntimePtr& runtime,
+                                              V1_0::IDevice::getCapabilities_cb cb)
 {
-    ALOGV("V1_0::ArmnnDriverImpl::getCapabilities()");
+    ALOGV("hal_1_0::ArmnnDriverImpl::getCapabilities()");
 
-    neuralnetworks::V1_0::Capabilities capabilities;
+    V1_0::Capabilities capabilities;
     if (runtime)
     {
         capabilities.float32Performance.execTime =
@@ -53,9 +47,9 @@
     }
     else
     {
-        capabilities.float32Performance.execTime = 0;
-        capabilities.float32Performance.powerUsage = 0;
-        capabilities.quantized8Performance.execTime = 0;
+        capabilities.float32Performance.execTime      = 0;
+        capabilities.float32Performance.powerUsage    = 0;
+        capabilities.quantized8Performance.execTime   = 0;
         capabilities.quantized8Performance.powerUsage = 0;
 
         cb(ErrorStatus::DEVICE_UNAVAILABLE, capabilities);
@@ -64,5 +58,5 @@
     return Void();
 }
 
-} // namespace armnn_driver::V1_0
-} // namespace armnn_driver
+} // namespace hal_1_0
+} // namespace armnn_driver
\ No newline at end of file
