diff --git a/certs_manager.cpp b/certs_manager.cpp
index dbc1e37..7170605 100644
--- a/certs_manager.cpp
+++ b/certs_manager.cpp
@@ -3,14 +3,14 @@
 #include <phosphor-logging/elog-errors.hpp>
 #include <xyz/openbmc_project/Certs/Install/error.hpp>
 #include <xyz/openbmc_project/Common/error.hpp>
-
 namespace phosphor
 {
 namespace certs
 {
 
-using InternalFailure =
-    sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure;
+using namespace sdbusplus::xyz::openbmc_project::Common::Error;
+using InvalidCertificate =
+    sdbusplus::xyz::openbmc_project::Certs::Install::Error::InvalidCertificate;
 using Reason = xyz::openbmc_project::Certs::Install::InvalidCertificate::REASON;
 
 /** @brief Constructor to put object onto bus at a dbus path.
@@ -27,6 +27,30 @@
     bus(bus), objectPath(path), certType(type), unitToRestart(std::move(unit)),
     certInstallPath(std::move(installPath))
 {
+    if (fs::exists(certInstallPath))
+    {
+        try
+        {
+            // TODO: Issue#3 At present supporting only one certificate to be
+            // uploaded this need to be revisited to support multiple
+            // certificates
+            auto certObjectPath = objectPath + '/' + '1';
+            certificatePtr = std::make_unique<Certificate>(
+                bus, certObjectPath, certType, unitToRestart, certInstallPath,
+                certInstallPath);
+        }
+        catch (const InternalFailure& e)
+        {
+            certificatePtr.reset(nullptr);
+            report<InternalFailure>();
+        }
+        catch (const InvalidCertificate& e)
+        {
+            certificatePtr.reset(nullptr);
+            report<InvalidCertificate>(
+                Reason("Existing certificate file is corrupted"));
+        }
+    }
 }
 
 void Manager::install(const std::string filePath)
