diff --git a/fw-update/update.cpp b/fw-update/update.cpp
new file mode 100644
index 0000000..5423cf8
--- /dev/null
+++ b/fw-update/update.cpp
@@ -0,0 +1,50 @@
+#include "update.hpp"
+
+#include "update_manager.hpp"
+
+namespace pldm
+{
+namespace fw_update
+{
+
+sdbusplus::message::object_path Update::startUpdate(
+    sdbusplus::message::unix_fd image,
+    ApplyTimeIntf::RequestedApplyTimes applyTime [[maybe_unused]])
+{
+    namespace software = sdbusplus::xyz::openbmc_project::Software::server;
+    // If a firmware activation of a package is in progress, don't proceed with
+    // package processing
+    if (updateManager->activation)
+    {
+        if (updateManager->activation->activation() ==
+            software::Activation::Activations::Activating)
+        {
+            throw sdbusplus::xyz::openbmc_project::Common::Error::Unavailable();
+        }
+        else
+        {
+            updateManager->clearActivationInfo();
+        }
+    }
+
+    info("Starting update for image {FD}", "FD", image.fd);
+    char buffer[4096];
+    ssize_t bytesRead;
+    imageStream.str(std::string());
+
+    while ((bytesRead = read(image, buffer, sizeof(buffer))) > 0)
+    {
+        imageStream.write(buffer, bytesRead);
+    }
+
+    if (bytesRead < 0)
+    {
+        throw std::runtime_error("Failed to read image file descriptor");
+    }
+
+    return sdbusplus::message::object_path(updateManager->processStreamDefer(
+        imageStream, imageStream.str().size()));
+}
+
+} // namespace fw_update
+} // namespace pldm
