diff --git a/tools/main.cpp b/tools/main.cpp
index cc0c707..547d50e 100644
--- a/tools/main.cpp
+++ b/tools/main.cpp
@@ -136,19 +136,19 @@
             exit(EXIT_FAILURE);
         }
 
-        IpmiHandler ipmi;
-        BlobHandler blob(&ipmi);
+        host_tool::IpmiHandler ipmi;
+        host_tool::BlobHandler blob(&ipmi);
 
-        std::unique_ptr<DataInterface> handler;
+        std::unique_ptr<host_tool::DataInterface> handler;
 
         /* Input has already been validated in this case. */
         if (interface == IPMIBT)
         {
-            handler = std::make_unique<BtDataHandler>(&blob);
+            handler = std::make_unique<host_tool::BtDataHandler>(&blob);
         }
         else if (interface == IPMILPC)
         {
-            handler = std::make_unique<LpcDataHandler>(&blob);
+            handler = std::make_unique<host_tool::LpcDataHandler>(&blob);
         }
 
         if (!handler)
@@ -162,9 +162,10 @@
         /* The parameters are all filled out. */
         try
         {
-            updaterMain(&blob, handler.get(), imagePath, signaturePath);
+            host_tool::updaterMain(&blob, handler.get(), imagePath,
+                                   signaturePath);
         }
-        catch (const ToolException& e)
+        catch (const host_tool::ToolException& e)
         {
             std::fprintf(stderr, "Exception received: %s\n", e.what());
             return -1;
