diff --git a/platform-mc/platform_manager.hpp b/platform-mc/platform_manager.hpp
new file mode 100644
index 0000000..a7fd412
--- /dev/null
+++ b/platform-mc/platform_manager.hpp
@@ -0,0 +1,50 @@
+#pragma once
+
+#include "libpldm/platform.h"
+#include "libpldm/pldm.h"
+
+#include "terminus.hpp"
+#include "terminus_manager.hpp"
+
+namespace pldm
+{
+
+namespace platform_mc
+{
+
+/**
+ * @brief PlatformManager
+ *
+ * PlatformManager class manages the actions outlined in the platform spec.
+ */
+class PlatformManager
+{
+  public:
+    PlatformManager() = delete;
+    PlatformManager(const PlatformManager&) = delete;
+    PlatformManager(PlatformManager&&) = delete;
+    PlatformManager& operator=(const PlatformManager&) = delete;
+    PlatformManager& operator=(PlatformManager&&) = delete;
+    ~PlatformManager() = default;
+
+    explicit PlatformManager(TerminusManager& terminusManager,
+                             TerminiMapper& termini) :
+        terminusManager(terminusManager),
+        termini(termini)
+    {}
+
+    /** @brief Initialize terminus which supports PLDM Type 2
+     *
+     *  @return coroutine return_value - PLDM completion code
+     */
+    exec::task<int> initTerminus();
+
+  private:
+    /** reference of TerminusManager for sending PLDM request to terminus*/
+    TerminusManager& terminusManager;
+
+    /** @brief Managed termini list */
+    TerminiMapper& termini;
+};
+} // namespace platform_mc
+} // namespace pldm
