diff --git a/Makefile.am b/Makefile.am
index 728fe8a..b2116c9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -118,6 +118,7 @@
 libmanualcmdsdir = ${libdir}/ipmid-providers
 libmanualcmds_LTLIBRARIES = libmanualcmds.la
 libmanualcmds_la_SOURCES = \
+	ipmi/main_ipmi.cpp \
 	ipmi/manualcmds.cpp
 libmanualcmds_la_LDFLAGS = \
 	$(SYSTEMD_LIBS) \
diff --git a/ipmi/main_ipmi.cpp b/ipmi/main_ipmi.cpp
new file mode 100644
index 0000000..6056464
--- /dev/null
+++ b/ipmi/main_ipmi.cpp
@@ -0,0 +1,38 @@
+/**
+ * Copyright 2017 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "manualcmds.hpp"
+
+#include <ipmid/iana.hpp>
+#include <ipmid/oemopenbmc.hpp>
+#include <ipmid/oemrouter.hpp>
+
+#include <cstdio>
+
+void setupGlobalOemFanControl() __attribute__((constructor));
+
+void setupGlobalOemFanControl()
+{
+    oem::Router* router = oem::mutableRouter();
+
+    std::fprintf(
+        stderr,
+        "Registering OEM:[%#08X], Cmd:[%#04X] for Manual Zone Control\n",
+        oem::obmcOemNumber, oem::Cmd::fanManualCmd);
+
+    router->registerHandler(oem::obmcOemNumber, oem::Cmd::fanManualCmd,
+                            pid_control::ipmi::manualModeControl);
+}
diff --git a/ipmi/manual_messages.hpp b/ipmi/manual_messages.hpp
new file mode 100644
index 0000000..5418d60
--- /dev/null
+++ b/ipmi/manual_messages.hpp
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <cstdint>
+
+namespace pid_control
+{
+namespace ipmi
+{
+
+enum ManualSubCmd
+{
+    getControlState = 0,
+    setControlState = 1,
+    getFailsafeState = 2,
+};
+
+struct FanCtrlRequest
+{
+    uint8_t command;
+    uint8_t zone;
+} __attribute__((packed));
+
+struct FanCtrlRequestSet
+{
+    uint8_t command;
+    uint8_t zone;
+    uint8_t value;
+} __attribute__((packed));
+
+} // namespace ipmi
+} // namespace pid_control
diff --git a/ipmi/manualcmds.cpp b/ipmi/manualcmds.cpp
index f376d44..e11d49a 100644
--- a/ipmi/manualcmds.cpp
+++ b/ipmi/manualcmds.cpp
@@ -16,11 +16,10 @@
 
 #include "manualcmds.hpp"
 
+#include "manual_messages.hpp"
+
 #include <ipmid/api.h>
 
-#include <ipmid/iana.hpp>
-#include <ipmid/oemopenbmc.hpp>
-#include <ipmid/oemrouter.hpp>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/message.hpp>
 
@@ -195,8 +194,8 @@
 }
 
 /* Three command packages: get, set true, set false */
-static ipmi_ret_t manualModeControl(ipmi_cmd_t cmd, const uint8_t* reqBuf,
-                                    uint8_t* replyCmdBuf, size_t* dataLen)
+ipmi_ret_t manualModeControl(ipmi_cmd_t cmd, const uint8_t* reqBuf,
+                             uint8_t* replyCmdBuf, size_t* dataLen)
 {
     // FanCtrlRequest is the smaller of the requests, so it's at a minimum.
     if (*dataLen < sizeof(struct FanCtrlRequest))
@@ -226,17 +225,3 @@
 
 } // namespace ipmi
 } // namespace pid_control
-
-void setupGlobalOemFanControl() __attribute__((constructor));
-
-void setupGlobalOemFanControl()
-{
-    oem::Router* router = oem::mutableRouter();
-
-    fprintf(stderr,
-            "Registering OEM:[%#08X], Cmd:[%#04X] for Manual Zone Control\n",
-            oem::obmcOemNumber, oem::Cmd::fanManualCmd);
-
-    router->registerHandler(oem::obmcOemNumber, oem::Cmd::fanManualCmd,
-                            pid_control::ipmi::manualModeControl);
-}
diff --git a/ipmi/manualcmds.hpp b/ipmi/manualcmds.hpp
index 5418d60..ac1513d 100644
--- a/ipmi/manualcmds.hpp
+++ b/ipmi/manualcmds.hpp
@@ -1,5 +1,7 @@
 #pragma once
 
+#include <ipmid/api.h>
+
 #include <cstdint>
 
 namespace pid_control
@@ -7,25 +9,8 @@
 namespace ipmi
 {
 
-enum ManualSubCmd
-{
-    getControlState = 0,
-    setControlState = 1,
-    getFailsafeState = 2,
-};
-
-struct FanCtrlRequest
-{
-    uint8_t command;
-    uint8_t zone;
-} __attribute__((packed));
-
-struct FanCtrlRequestSet
-{
-    uint8_t command;
-    uint8_t zone;
-    uint8_t value;
-} __attribute__((packed));
+ipmi_ret_t manualModeControl(ipmi_cmd_t cmd, const uint8_t* reqBuf,
+                             uint8_t* replyCmdBuf, size_t* dataLen);
 
 } // namespace ipmi
 } // namespace pid_control
