diff --git a/core_manager.cpp b/core_manager.cpp
index a2219c3..176c0bd 100644
--- a/core_manager.cpp
+++ b/core_manager.cpp
@@ -67,7 +67,7 @@
     }
     catch (const sdbusplus::exception_t& e)
     {
-        lg2::error("Failed to GetObject on Dump.Internal: {ERROR}", "ERROR", e);
+        lg2::error("Failed to GetObject on Dump.Create: {ERROR}", "ERROR", e);
         return;
     }
     if (mapperResponse.empty())
diff --git a/core_manager.hpp b/core_manager.hpp
index ee887ed..6c7457c 100644
--- a/core_manager.hpp
+++ b/core_manager.hpp
@@ -55,7 +55,7 @@
 
   private:
     /** @brief Helper function for initiating dump request using
-     *         D-bus internal create interface.
+     *         createDump D-Bus interface.
      *  @param [in] files - Core files list
      */
     void createHelper(const std::vector<std::string>& files);
diff --git a/dump_internal.hpp b/dump_internal.hpp
deleted file mode 100644
index 7bd69cb..0000000
--- a/dump_internal.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#pragma once
-
-#include "xyz/openbmc_project/Dump/Internal/Create/server.hpp"
-
-#include <sdbusplus/bus.hpp>
-#include <sdbusplus/server/object.hpp>
-
-namespace phosphor
-{
-namespace dump
-{
-namespace bmc
-{
-
-class Manager;
-namespace internal
-{
-
-using CreateIface = sdbusplus::server::object_t<
-    sdbusplus::xyz::openbmc_project::Dump::Internal::server::Create>;
-using Mgr = phosphor::dump::bmc::Manager;
-
-/** @class Manager
- *  @brief Implementation for the
- *         xyz.openbmc_project.Dump.Internal.Create DBus API.
- */
-class Manager : public CreateIface
-{
-  public:
-    Manager() = delete;
-    Manager(const Manager&) = delete;
-    Manager& operator=(const Manager&) = delete;
-    Manager(Manager&&) = delete;
-    Manager& operator=(Manager&&) = delete;
-    virtual ~Manager() = default;
-
-    /** @brief Constructor to put object onto bus at a dbus path.
-     *  @param[in] bus - Bus to attach to.
-     *  @param[in] dumpMgr - Dump Manager object
-     *  @param[in] path - Path to attach at.
-     */
-    Manager(sdbusplus::bus_t& bus, Mgr& dumpMgr, const char* path) :
-        CreateIface(bus, path), dumpMgr(dumpMgr){};
-
-    /**  @brief Implementation for Create
-     *  Create BMC Dump based on the Dump type.
-     *
-     *  @param[in] type - Type of the Dump.
-     *  @param[in] fullPaths - List of absolute paths to the files
-     *             to be included as part of Dump package.
-     */
-    void create(Type type, std::vector<std::string> fullPaths) override;
-
-  private:
-    /**  @brief Dump Manager object. */
-    Mgr& dumpMgr;
-};
-
-} // namespace internal
-} // namespace bmc
-} // namespace dump
-} // namespace phosphor
diff --git a/dump_manager_bmc.cpp b/dump_manager_bmc.cpp
index d41979a..68d0759 100644
--- a/dump_manager_bmc.cpp
+++ b/dump_manager_bmc.cpp
@@ -3,7 +3,6 @@
 #include "dump_manager_bmc.hpp"
 
 #include "bmc_dump_entry.hpp"
-#include "dump_internal.hpp"
 #include "dump_types.hpp"
 #include "xyz/openbmc_project/Common/error.hpp"
 #include "xyz/openbmc_project/Dump/Create/error.hpp"
@@ -34,16 +33,6 @@
 bool Manager::fUserDumpInProgress = false;
 constexpr auto BMC_DUMP = "BMC_DUMP";
 
-namespace internal
-{
-
-void Manager::create(Type type, std::vector<std::string> fullPaths)
-{
-    dumpMgr.phosphor::dump::bmc::Manager::captureDump(type, fullPaths);
-}
-
-} // namespace internal
-
 sdbusplus::message::object_path
     Manager::createDump(phosphor::dump::DumpCreateParams params)
 {
@@ -58,7 +47,6 @@
 
     phosphor::dump::extractOriginatorProperties(params, originatorId,
                                                 originatorType);
-
     using CreateParameters =
         sdbusplus::common::xyz::openbmc_project::dump::Create::CreateParameters;
 
@@ -119,14 +107,6 @@
     return objPath.string();
 }
 
-uint32_t Manager::captureDump(Type type,
-                              const std::vector<std::string>& fullPaths)
-{
-    // get dreport type map entry
-    auto tempType = TypeMap.find(type);
-    return captureDump(stringToDumpType(tempType->second).value(),
-                       fullPaths.front());
-}
 uint32_t Manager::captureDump(DumpTypes type, const std::string& path)
 {
     // Get Dump size.
diff --git a/dump_manager_bmc.hpp b/dump_manager_bmc.hpp
index 22e688d..1e4e586 100644
--- a/dump_manager_bmc.hpp
+++ b/dump_manager_bmc.hpp
@@ -3,7 +3,6 @@
 #include "dump_manager.hpp"
 #include "dump_utils.hpp"
 #include "watch.hpp"
-#include "xyz/openbmc_project/Dump/Internal/Create/server.hpp"
 
 #include <sdeventplus/source/child.hpp>
 #include <xyz/openbmc_project/Dump/Create/server.hpp>
@@ -17,30 +16,14 @@
 {
 namespace bmc
 {
-namespace internal
-{
-
-class Manager;
-
-} // namespace internal
 
 using CreateIface = sdbusplus::server::object_t<
     sdbusplus::xyz::openbmc_project::Dump::server::Create>;
 
 using UserMap = phosphor::dump::inotify::UserMap;
 
-using Type =
-    sdbusplus::xyz::openbmc_project::Dump::Internal::server::Create::Type;
-
 using Watch = phosphor::dump::inotify::Watch;
 using ::sdeventplus::source::Child;
-// Type to dreport type  string map
-static const std::map<Type, std::string> TypeMap = {
-    {Type::ApplicationCored, "core"},
-    {Type::UserRequested, "user"},
-    {Type::InternalFailure, "elog"},
-    {Type::Checkstop, "checkstop"},
-    {Type::Ramoops, "ramoops"}};
 
 /** @class Manager
  *  @brief OpenBMC Dump  manager implementation.
@@ -51,8 +34,6 @@
     virtual public CreateIface,
     virtual public phosphor::dump::Manager
 {
-    friend class internal::Manager;
-
   public:
     Manager() = delete;
     Manager(const Manager&) = default;
@@ -105,14 +86,6 @@
      */
     void createEntry(const std::filesystem::path& fullPath);
 
-    /**  @brief Capture BMC Dump based on the Dump type.
-     *  @param[in] type - Type of the Dump.
-     *  @param[in] fullPaths - List of absolute paths to the files
-     *             to be included as part of Dump package.
-     *  @return id - The Dump entry id number.
-     */
-    uint32_t captureDump(Type type, const std::vector<std::string>& fullPaths);
-
     /** @brief Capture BMC Dump based on the Dump type.
      *  @param[in] type - Type of the dump to pass to dreport
      *  @param[in] path - An absolute path to the file
diff --git a/dump_manager_main.cpp b/dump_manager_main.cpp
index 4801f5f..a3ce920 100644
--- a/dump_manager_main.cpp
+++ b/dump_manager_main.cpp
@@ -1,7 +1,6 @@
 #include "config.h"
 
 #include "dump-extensions.hpp"
-#include "dump_internal.hpp"
 #include "dump_manager.hpp"
 #include "dump_manager_bmc.hpp"
 #include "dump_manager_faultlog.hpp"
@@ -69,8 +68,6 @@
                 bus, eventP, BMC_DUMP_OBJPATH, BMC_DUMP_OBJ_ENTRY,
                 BMC_DUMP_PATH);
 
-        phosphor::dump::bmc::internal::Manager mgr(bus, *bmcDumpMgr,
-                                                   OBJ_INTERNAL);
         phosphor::dump::bmc::Manager* ptrBmcDumpMgr = bmcDumpMgr.get();
 
         dumpMgrList.push_back(std::move(bmcDumpMgr));
diff --git a/elog_watch.cpp b/elog_watch.cpp
index d128f12..4eb39f2 100644
--- a/elog_watch.cpp
+++ b/elog_watch.cpp
@@ -2,7 +2,6 @@
 
 #include "elog_watch.hpp"
 
-#include "dump_internal.hpp"
 #include "dump_serialize.hpp"
 #include "dump_types.hpp"
 #include "xyz/openbmc_project/Dump/Create/error.hpp"
@@ -11,6 +10,7 @@
 #include <phosphor-logging/elog.hpp>
 #include <phosphor-logging/lg2.hpp>
 #include <sdbusplus/exception.hpp>
+#include <xyz/openbmc_project/Dump/Create/common.hpp>
 
 #include <fstream>
 
diff --git a/meson.build b/meson.build
index f7acc64..98ce6d0 100644
--- a/meson.build
+++ b/meson.build
@@ -72,9 +72,6 @@
 conf_data.set_quoted('CORE_FILE_DIR', get_option('CORE_FILE_DIR'),
                       description : 'Directory where core dumps are placed'
                     )
-conf_data.set_quoted('OBJ_INTERNAL', get_option('OBJ_INTERNAL'),
-                      description : 'Internal Dump manager Dbus object path'
-                    )
 conf_data.set_quoted('BMC_DUMP_OBJ_ENTRY', get_option('BMC_DUMP_OBJ_ENTRY'),
                       description : 'The BMC dump entry DBus object path'
                     )
@@ -122,7 +119,6 @@
 configure_file(configuration : conf_data,
                output : 'config.h'
               )
-subdir('xyz/openbmc_project/Dump/Internal/Create')
 
 dump_types_yaml_files = []
 
@@ -199,9 +195,6 @@
         'dump_manager_main.cpp',
         'dump_serialize.cpp',
         'elog_watch.cpp',
-        common_hpp,
-        server_hpp,
-        server_cpp,
         dump_types_hpp,
         dump_types_cpp,
         'watch.cpp',
diff --git a/meson.options b/meson.options
index 0fe8e95..012a167 100644
--- a/meson.options
+++ b/meson.options
@@ -26,11 +26,6 @@
         description : 'Directory where core dumps are placed'
       )
 
-option('OBJ_INTERNAL', type : 'string',
-        value : '/xyz/openbmc_project/dump/internal/manager',
-        description : 'Internal dump manager D-Bus object path'
-      )
-
 option('BMC_DUMP_OBJ_ENTRY', type : 'string',
         value : '/xyz/openbmc_project/dump/bmc/entry',
         description : 'The BMC dump entry D-Bus object path'
diff --git a/ramoops_manager.hpp b/ramoops_manager.hpp
index 3946a2b..57ab23c 100644
--- a/ramoops_manager.hpp
+++ b/ramoops_manager.hpp
@@ -35,7 +35,7 @@
 
   private:
     /** @brief Helper function for initiating dump request using
-     *         D-bus internal create interface.
+     *         createDump D-Bus interface.
      *  @param [in] files - ramoops files list
      */
     void createHelper(const std::vector<std::string>& files);
diff --git a/xyz/openbmc_project/Dump/Internal/Create.interface.yaml b/xyz/openbmc_project/Dump/Internal/Create.interface.yaml
deleted file mode 100644
index e2984c2..0000000
--- a/xyz/openbmc_project/Dump/Internal/Create.interface.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-description: >
-    Implement to capture BMC Dump based on type.
-
-methods:
-    - name: Create
-      description: >
-          Create BMC Dump based on the Dump type.
-      parameters:
-          - name: Type
-            type: enum[self.Type]
-            description: >
-                Type of the Dump.
-          - name: FullPaths
-            type: array[string]
-            description: >
-                A list of paths (file paths or d-bus object paths) that must be
-                processed to derive the dump content.
-      errors:
-          - xyz.openbmc_project.Common.File.Error.Write
-          - xyz.openbmc_project.Dump.Create.Error.Disabled
-          - xyz.openbmc_project.Dump.Create.Error.QuotaExceeded
-
-enumerations:
-    - name: Type
-      description: >
-          Possible types of BMC Dump.
-      values:
-          - name: ApplicationCored
-            description: >
-                Dump triggered due to application core.
-          - name: UserRequested
-            description: >
-                Dump triggered by the user.
-          - name: InternalFailure
-            description: >
-                Dump triggered due to InternalFailure type error commit.
-          - name: Checkstop
-            description: >
-                Dump triggered due to Checkstop type error commit.
-          - name: Ramoops
-            description: >
-                Dump triggered due to Ramoops type error commit.
-
-# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Dump/Internal/Create/meson.build b/xyz/openbmc_project/Dump/Internal/Create/meson.build
deleted file mode 100644
index f2d2c45..0000000
--- a/xyz/openbmc_project/Dump/Internal/Create/meson.build
+++ /dev/null
@@ -1,46 +0,0 @@
-# SPDX-License-Identifier: Apache-2.0
-
-common_hpp = custom_target(
-                'common.hpp',
-                command : [
-                    sdbusplusplus_prog, '-r', meson.project_source_root(),
-                    'interface',
-                    'common-header',
-                    'xyz.openbmc_project.Dump.Internal.Create',
-                ],
-                input : '../Create.interface.yaml',
-                capture : true,
-                output : 'common.hpp',
-                install : true,
-                install_dir: get_option('includedir') / 'xyz/openbmc_project/Dump/Internal/Create'
-            )
-
-server_hpp = custom_target(
-                'server.hpp',
-                command : [
-                    sdbusplusplus_prog, '-r', meson.project_source_root(),
-                    'interface',
-                    'server-header',
-                    'xyz.openbmc_project.Dump.Internal.Create',
-                ],
-                input : '../Create.interface.yaml',
-                depends: common_hpp,
-                capture : true,
-                output : 'server.hpp',
-                install : true,
-                install_dir: get_option('includedir') / 'xyz/openbmc_project/Dump/Internal/Create'
-            )
-
-server_cpp = custom_target(
-                'server.cpp',
-                command : [
-                    sdbusplusplus_prog, '-r', meson.project_source_root(),
-                    'interface',
-                    'server-cpp',
-                    'xyz.openbmc_project.Dump.Internal.Create'
-                ],
-                input : '../Create.interface.yaml',
-                depends : server_hpp,
-                capture : true,
-                output : 'server.cpp'
-            )
