diff --git a/Makefile.am b/Makefile.am
index cd4682e..11c07b2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -50,7 +50,9 @@
 	command/sol_cmds.hpp \
 	command/sol_cmds.cpp \
 	command/payload_cmds.hpp \
-	command/payload_cmds.cpp
+	command/payload_cmds.cpp \
+	sol_module.hpp \
+	sol_module.cpp
 
 netipmid_CPPFLAGS = -DNET_IPMID_LIB_PATH=\"/usr/lib/net-ipmid/\"
 netipmid_LDFLAGS = $(SYSTEMD_LIBS) $(CRYPTO_LIBS) $(libmapper_LIBS) $(PHOSPHOR_LOGGING_LIBS) $(LIBADD_DLOPEN) -export-dynamic
diff --git a/sol_module.cpp b/sol_module.cpp
new file mode 100644
index 0000000..174f58f
--- /dev/null
+++ b/sol_module.cpp
@@ -0,0 +1,59 @@
+#include "command/sol_cmds.hpp"
+#include "command/payload_cmds.hpp"
+#include "command_table.hpp"
+#include "main.hpp"
+#include "session.hpp"
+
+namespace sol
+{
+
+namespace command
+{
+
+void registerCommands()
+{
+    static const ::command::CmdDetails commands[] =
+    {
+        // SOL Payload Handler
+        {
+            {(static_cast<uint32_t>(message::PayloadType::SOL) << 16)},
+            &payloadHandler, session::Privilege::HIGHEST_MATCHING,
+            false
+        },
+        // Activate Payload Command
+        {
+            {
+                (static_cast<uint32_t>(message::PayloadType::IPMI) << 16) |
+                static_cast<uint16_t>(::command::NetFns::APP) | 0x48
+            },
+            &activatePayload, session::Privilege::USER, false
+        },
+        // Deactivate Payload Command
+        {
+            {
+                (static_cast<uint32_t>(message::PayloadType::IPMI) << 16) |
+                static_cast<uint16_t>(::command::NetFns::APP) | 0x49
+            },
+            &deactivatePayload, session::Privilege::USER, false
+        },
+        // Get Payload Activation Status
+        {
+            {
+                (static_cast<uint32_t>(message::PayloadType::IPMI) << 16) |
+                static_cast<uint16_t>(::command::NetFns::APP) | 0x4A
+            },
+            &getPayloadStatus, session::Privilege::USER, false
+        },
+    };
+
+    for (const auto& iter : commands)
+    {
+        std::get<::command::Table&>(singletonPool).registerCommand(
+            iter.command, std::make_unique<::command::NetIpmidEntry>
+            (iter.command, iter.functor, iter.privilege, iter.sessionless));
+    }
+}
+
+} // namespace command
+
+} // namespace sol
diff --git a/sol_module.hpp b/sol_module.hpp
new file mode 100644
index 0000000..f1a4beb
--- /dev/null
+++ b/sol_module.hpp
@@ -0,0 +1,14 @@
+#pragma once
+
+namespace sol
+{
+
+namespace command
+{
+
+/** @brief Register SOL commands to the Command Table */
+void registerCommands();
+
+} // namespace command
+
+} // namespace sol
