diff --git a/main.cpp b/main.cpp
index 8a6bac1..a3288ef 100644
--- a/main.cpp
+++ b/main.cpp
@@ -14,10 +14,13 @@
  * limitations under the License.
  */
 
+#include <memory>
+
 #include "host-ipmid/ipmid-api.h"
 #include "host-ipmid/oemrouter.hpp"
 
 #include "flash-ipmi.hpp"
+#include "ipmi.hpp"
 
 /* TODO: Once OEM IPMI number placement is settled, point to that. */
 namespace oem
@@ -29,6 +32,9 @@
 } // namespace google
 } // namespace oem
 
+/* We have one instance of the FlashUpdate object tracking commands. */
+std::unique_ptr<FlashUpdate> flashUpdateSingleton;
+
 static ipmi_ret_t flashControl(ipmi_cmd_t cmd, const uint8_t* reqBuf,
                                uint8_t* replyCmdBuf, size_t* dataLen)
 {
@@ -38,6 +44,20 @@
         return IPMI_CC_INVALID;
     }
 
+    uint8_t subCmd = reqBuf[0];
+
+    /* TODO: This could be cleaner to just have a function pointer table, may
+     * transition in later patchset.
+     */
+    switch (subCmd)
+    {
+        case FlashSubCmds::flashStartTransfer:
+            return startTransfer(flashUpdateSingleton.get(), reqBuf,
+                                 replyCmdBuf, dataLen);
+        default:
+            return IPMI_CC_INVALID;
+    }
+
     return IPMI_CC_INVALID;
 }
 
@@ -58,6 +78,8 @@
 
 void setupGlobalOemFlashControl()
 {
+    flashUpdateSingleton = std::make_unique<FlashUpdate>();
+
 #ifdef ENABLE_GOOGLE
     oem::Router* router = oem::mutableRouter();
 
