diff --git a/download_manager.cpp b/download_manager.cpp
index e6f7728..35c8109 100644
--- a/download_manager.cpp
+++ b/download_manager.cpp
@@ -25,6 +25,7 @@
 void Download::downloadViaTFTP(std::string fileName,
                                std::string serverAddress)
 {
+    using Argument = xyz::openbmc_project::Common::InvalidArgument;
 
     // Sanitize the fileName string
     if (!fileName.empty())
@@ -37,20 +38,16 @@
     if (fileName.empty())
     {
         log<level::ERR>("Error FileName is empty");
-        elog<InvalidArgument>(xyz::openbmc_project::Common::InvalidArgument::
-                              ARGUMENT_NAME("FileName"),
-                              xyz::openbmc_project::Common::InvalidArgument::
-                              ARGUMENT_VALUE(fileName.c_str()));
+        elog<InvalidArgument>(Argument::ARGUMENT_NAME("FileName"),
+                              Argument::ARGUMENT_VALUE(fileName.c_str()));
         return;
     }
 
     if (serverAddress.empty())
     {
         log<level::ERR>("Error ServerAddress is empty");
-        elog<InvalidArgument>(xyz::openbmc_project::Common::InvalidArgument::
-                              ARGUMENT_NAME("ServerAddress"),
-                              xyz::openbmc_project::Common::InvalidArgument::
-                              ARGUMENT_VALUE(serverAddress.c_str()));
+        elog<InvalidArgument>(Argument::ARGUMENT_NAME("ServerAddress"),
+                              Argument::ARGUMENT_VALUE(serverAddress.c_str()));
         return;
     }
 
@@ -71,8 +68,9 @@
     {
         // child process
         execl("/usr/bin/tftp", "tftp", "-g", "-r",  fileName.c_str(),
-              serverAddress.c_str(), "-l", (std::string{IMG_UPLOAD_DIR} + '/' +
-                                            fileName).c_str(), (char*)0);
+              serverAddress.c_str(), "-l",
+              (std::string{IMG_UPLOAD_DIR} + '/' + fileName).c_str(),
+              (char*)0);
         // execl only returns on fail
         log<level::ERR>("Error occurred during the TFTP call");
         elog<InternalFailure>();
