diff --git a/Makefile.am b/Makefile.am
index 3373fcb..f2042c2 100755
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,8 +24,8 @@
 	image_manager.cpp
 
 BUILT_SOURCES = \
-	xyz/openbmc_project/Software/Version/error.cpp \
-	xyz/openbmc_project/Software/Version/error.hpp \
+	xyz/openbmc_project/Software/Image/error.cpp \
+	xyz/openbmc_project/Software/Image/error.hpp \
 	org/openbmc/Associations/server.cpp \
 	org/openbmc/Associations/server.hpp
 
@@ -88,13 +88,13 @@
 	-lssl \
 	-lcrypto
 
-xyz/openbmc_project/Software/Version/error.hpp: ${top_srcdir}/xyz/openbmc_project/Software/Version.errors.yaml
+xyz/openbmc_project/Software/Image/error.hpp: ${top_srcdir}/xyz/openbmc_project/Software/Image.errors.yaml
 	@mkdir -p `dirname $@`
-	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-header xyz.openbmc_project.Software.Version > $@
+	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-header xyz.openbmc_project.Software.Image > $@
 
-xyz/openbmc_project/Software/Version/error.cpp: ${top_srcdir}/xyz/openbmc_project/Software/Version.errors.yaml
+xyz/openbmc_project/Software/Image/error.cpp: ${top_srcdir}/xyz/openbmc_project/Software/Image.errors.yaml
 	@mkdir -p `dirname $@`
-	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-cpp xyz.openbmc_project.Software.Version > $@
+	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-cpp xyz.openbmc_project.Software.Image > $@
 
 org/openbmc/Associations/server.cpp: org/openbmc/Associations.interface.yaml
 	@mkdir -p `dirname $@`
diff --git a/elog-errors.hpp b/elog-errors.hpp
index a175849..2888f0d 100644
--- a/elog-errors.hpp
+++ b/elog-errors.hpp
@@ -17,13 +17,13 @@
 {
 namespace Software
 {
-namespace Version
+namespace Image
 {
 namespace Error
 {
 struct UnTarFailure;
 } // namespace Error
-} // namespace Version
+} // namespace Image
 } // namespace Software
 } // namespace openbmc_project
 } // namespace xyz
@@ -37,13 +37,13 @@
 {
 namespace Software
 {
-namespace Version
+namespace Image
 {
 namespace Error
 {
 struct InternalFailure;
 } // namespace Error
-} // namespace Version
+} // namespace Image
 } // namespace Software
 } // namespace openbmc_project
 } // namespace xyz
@@ -57,13 +57,13 @@
 {
 namespace Software
 {
-namespace Version
+namespace Image
 {
 namespace Error
 {
 struct ManifestFileFailure;
 } // namespace Error
-} // namespace Version
+} // namespace Image
 } // namespace Software
 } // namespace openbmc_project
 } // namespace xyz
@@ -81,7 +81,7 @@
 {
 namespace Software
 {
-namespace Version
+namespace Image
 {
 namespace _UnTarFailure
 {
@@ -100,7 +100,7 @@
 struct UnTarFailure : public sdbusplus::exception_t
 {
     static constexpr auto errName =
-        "xyz.openbmc_project.Software.Version.UnTarFailure";
+        "xyz.openbmc_project.Software.Image.UnTarFailure";
     static constexpr auto errDesc = "An error occurred during untar.";
     static constexpr auto L = level::ERR;
     using PATH = _UnTarFailure::PATH;
@@ -122,7 +122,7 @@
     }
 };
 
-} // namespace Version
+} // namespace Image
 } // namespace Software
 } // namespace openbmc_project
 } // namespace xyz
@@ -132,9 +132,9 @@
 
 template <>
 struct map_exception_type<
-    sdbusplus::xyz::openbmc_project::Software::Version::Error::UnTarFailure>
+    sdbusplus::xyz::openbmc_project::Software::Image::Error::UnTarFailure>
 {
-    using type = xyz::openbmc_project::Software::Version::UnTarFailure;
+    using type = xyz::openbmc_project::Software::Image::UnTarFailure;
 };
 } // namespace details
 
@@ -144,7 +144,7 @@
 {
 namespace Software
 {
-namespace Version
+namespace Image
 {
 namespace _ManifestFileFailure
 {
@@ -163,7 +163,7 @@
 struct ManifestFileFailure : public sdbusplus::exception_t
 {
     static constexpr auto errName =
-        "xyz.openbmc_project.Software.Version.ManifestFileFailure";
+        "xyz.openbmc_project.Software.Image.ManifestFileFailure";
     static constexpr auto errDesc = "An error when reading the Manifest file.";
     static constexpr auto L = level::ERR;
     using PATH = _ManifestFileFailure::PATH;
@@ -185,7 +185,7 @@
     }
 };
 
-} // namespace Version
+} // namespace Image
 } // namespace Software
 } // namespace openbmc_project
 } // namespace xyz
@@ -194,10 +194,10 @@
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Software::Version::
+struct map_exception_type<sdbusplus::xyz::openbmc_project::Software::Image::
                               Error::ManifestFileFailure>
 {
-    using type = xyz::openbmc_project::Software::Version::ManifestFileFailure;
+    using type = xyz::openbmc_project::Software::Image::ManifestFileFailure;
 };
 } // namespace details
 
@@ -207,7 +207,7 @@
 {
 namespace Software
 {
-namespace Version
+namespace Image
 {
 namespace _InternalFailure
 {
@@ -226,7 +226,7 @@
 struct InternalFailure : public sdbusplus::exception_t
 {
     static constexpr auto errName =
-        "xyz.openbmc_project.Software.Version.InternalFailure";
+        "xyz.openbmc_project.Software.Image.InternalFailure";
     static constexpr auto errDesc =
         "The operation failed internally during processing the image.";
     static constexpr auto L = level::ERR;
@@ -249,7 +249,7 @@
     }
 };
 
-} // namespace Version
+} // namespace Image
 } // namespace Software
 } // namespace openbmc_project
 } // namespace xyz
@@ -259,9 +259,9 @@
 
 template <>
 struct map_exception_type<
-    sdbusplus::xyz::openbmc_project::Software::Version::Error::InternalFailure>
+    sdbusplus::xyz::openbmc_project::Software::Image::Error::InternalFailure>
 {
-    using type = xyz::openbmc_project::Software::Version::InternalFailure;
+    using type = xyz::openbmc_project::Software::Image::InternalFailure;
 };
 } // namespace details
 
diff --git a/image_manager.cpp b/image_manager.cpp
index 8bae16c..1a530de 100644
--- a/image_manager.cpp
+++ b/image_manager.cpp
@@ -18,7 +18,7 @@
 #include <phosphor-logging/elog.hpp>
 #include <phosphor-logging/log.hpp>
 #include <string>
-#include <xyz/openbmc_project/Software/Version/error.hpp>
+#include <xyz/openbmc_project/Software/Image/error.hpp>
 
 namespace phosphor
 {
@@ -28,11 +28,11 @@
 {
 
 using namespace phosphor::logging;
-using namespace sdbusplus::xyz::openbmc_project::Software::Version::Error;
+using namespace sdbusplus::xyz::openbmc_project::Software::Image::Error;
 namespace Software = phosphor::logging::xyz::openbmc_project::Software;
-using ManifestFail = Software::Version::ManifestFileFailure;
-using UnTarFail = Software::Version::UnTarFailure;
-using InternalFail = Software::Version::InternalFailure;
+using ManifestFail = Software::Image::ManifestFileFailure;
+using UnTarFail = Software::Image::UnTarFailure;
+using InternalFail = Software::Image::InternalFailure;
 namespace fs = std::experimental::filesystem;
 
 struct RemovablePath
diff --git a/item_updater.cpp b/item_updater.cpp
index 90a97d4..6dd7a52 100644
--- a/item_updater.cpp
+++ b/item_updater.cpp
@@ -15,7 +15,7 @@
 #include <queue>
 #include <set>
 #include <string>
-#include <xyz/openbmc_project/Software/Version/error.hpp>
+#include <xyz/openbmc_project/Software/Image/error.hpp>
 
 namespace phosphor
 {
@@ -29,7 +29,7 @@
 namespace control = sdbusplus::xyz::openbmc_project::Control::server;
 
 using namespace phosphor::logging;
-using namespace sdbusplus::xyz::openbmc_project::Software::Version::Error;
+using namespace sdbusplus::xyz::openbmc_project::Software::Image::Error;
 using namespace phosphor::software::image;
 namespace fs = std::experimental::filesystem;
 
diff --git a/xyz/openbmc_project/Software/Version.errors.yaml b/xyz/openbmc_project/Software/Image.errors.yaml
similarity index 100%
rename from xyz/openbmc_project/Software/Version.errors.yaml
rename to xyz/openbmc_project/Software/Image.errors.yaml
diff --git a/xyz/openbmc_project/Software/Version.metadata.yaml b/xyz/openbmc_project/Software/Image.metadata.yaml
similarity index 100%
rename from xyz/openbmc_project/Software/Version.metadata.yaml
rename to xyz/openbmc_project/Software/Image.metadata.yaml
