diff --git a/Makefile.am b/Makefile.am
index 9027e47..2c31b57 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,11 +1,5 @@
 AM_DEFAULT_SOURCE_EXT = .cpp
 
-HANDLERS =
-
-if ENABLE_EXAMPLE
-HANDLERS += example/example.cpp
-endif
-
 libblobcmdsdir = ${libdir}/ipmid-providers
 libblobcmds_LTLIBRARIES = libblobcmds.la
 libblobcmds_la_SOURCES = main.cpp \
@@ -13,8 +7,7 @@
 			 manager.cpp \
 			 process.cpp \
 			 crc.cpp \
-			 utils.cpp \
-			 $(HANDLERS)
+			 utils.cpp
 
 libblobcmds_la_LDFLAGS = $(SYSTEMD_LIBS) \
 			 $(LIBADD_DLOPEN) \
@@ -29,4 +22,14 @@
 	blobs-ipmid/blobs.hpp \
 	blobs-ipmid/manager.hpp
 
+# Always build but only installed if you add the item:
+# BLOBIPMI_PROVIDER_LIBRARY += "libexample.so"
+libexampledir = ${libdir}/blob-providers
+libexample_LTLIBRARIES = libexample.la
+libexample_la_SOURCES = example/example.cpp
+libexample_la_LDFLAGS = $(PHOSPHOR_LOGGING_LIBS) \
+			-version-info 0:0:0 -shared
+libexample_la_CXXFLAGS = $(PHOSPHOR_LOGGING_CFLAGS) \
+			 -flto
+
 SUBDIRS = . test
diff --git a/configure.ac b/configure.ac
index 21fcde9..efdd0b8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -55,16 +55,6 @@
     AC_SUBST([OESDK_TESTCASE_FLAGS], [$testcase_flags])
 )
 
-# Do you want to include the example blob handler?
-AC_ARG_ENABLE([example],
-    AS_HELP_STRING([--enable-example], [Enable example blob handler])
-)
-AM_CONDITIONAL(ENABLE_EXAMPLE, [test "x$enable_example" = "xyes"])
-AS_IF([test "x$enable_example" = "xyes"],
-    [AC_DEFINE(ENABLE_EXAMPLE, [1], [Build and install the example handler.])],
-    [AC_DEFINE(ENABLE_EXAMPLE, [0], [Do not build and install the example handler.])]
-)
-
 # Create configured output
 AC_CONFIG_FILES([Makefile test/Makefile])
 AC_OUTPUT
diff --git a/example/example.cpp b/example/example.cpp
index 66c8227..9209798 100644
--- a/example/example.cpp
+++ b/example/example.cpp
@@ -1,13 +1,18 @@
 #include "example/example.hpp"
 
 #include <algorithm>
+#include <blobs-ipmid/manager.hpp>
 #include <cstring>
+#include <memory>
+#include <phosphor-logging/log.hpp>
 #include <string>
 #include <vector>
 
 namespace blobs
 {
 
+using namespace phosphor::logging;
+
 constexpr char ExampleBlobHandler::supportedPath[];
 
 ExampleBlob* ExampleBlobHandler::getSession(uint16_t id)
@@ -165,4 +170,15 @@
     return false;
 }
 
+void setupExampleHandler() __attribute__((constructor));
+
+void setupExampleHandler()
+{
+    BlobManager* manager = getBlobManager();
+    if (!manager->registerHandler(std::make_unique<ExampleBlobHandler>()))
+    {
+        log<level::ERR>("Failed to register Example Handler");
+    }
+}
+
 } // namespace blobs
diff --git a/main.cpp b/main.cpp
index e0828db..f897fda 100644
--- a/main.cpp
+++ b/main.cpp
@@ -18,6 +18,7 @@
 
 #include "ipmi.hpp"
 #include "process.hpp"
+#include "utils.hpp"
 
 #include <host-ipmid/ipmid-api.h>
 
@@ -26,10 +27,6 @@
 #include <host-ipmid/oemrouter.hpp>
 #include <memory>
 
-#if ENABLE_EXAMPLE
-#include "example/example.hpp"
-#endif
-
 /* TODO: Swap out once https://gerrit.openbmc-project.xyz/12743 is merged */
 namespace oem
 {
@@ -63,6 +60,9 @@
                               dataLen);
 }
 
+/* TODO: this should come from the makefile or recipe... */
+constexpr auto expectedHandlerPath = "/usr/lib/blobs-ipmid";
+
 void setupBlobGlobalHandler() __attribute__((constructor));
 
 void setupBlobGlobalHandler()
@@ -75,9 +75,7 @@
     oemRouter->registerHandler(oem::obmcOemNumber, oem::blobTransferCmd,
                                handleBlobCommand);
 
-#if ENABLE_EXAMPLE
-    BlobManager* manager = getBlobManager();
-    manager->registerHandler(std::move(std::make_unique<ExampleBlobHandler>()));
-#endif
+    /* Install handlers. */
+    loadLibraries(expectedHandlerPath);
 }
 } // namespace blobs
