diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp
index 1716756..33e22e8 100644
--- a/buffet/buffet.gyp
+++ b/buffet/buffet.gyp
@@ -62,6 +62,7 @@
         '../libweave/src/privet/peerd_client.cc',
         '../libweave/src/privet/privet_handler.cc',
         '../libweave/src/privet/privet_manager.cc',
+        '../libweave/src/privet/privet_types.cc',
         '../libweave/src/privet/security_manager.cc',
         '../libweave/src/privet/shill_client.cc',
         '../libweave/src/privet/wifi_bootstrap_manager.cc',
diff --git a/buffet/manager.cc b/buffet/manager.cc
index a8f6112..9fa54cd 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -23,6 +23,8 @@
 #include <dbus/object_path.h>
 #include <dbus/values_util.h>
 
+#include "weave/enum_to_string.h"
+
 using chromeos::dbus_utils::AsyncEventSequencer;
 using chromeos::dbus_utils::ExportedObjectManager;
 
@@ -37,21 +39,6 @@
 const char kErrorDomain[] = "buffet";
 const char kNotImplemented[] = "notImplemented";
 
-std::string StatusToString(weave::RegistrationStatus status) {
-  switch (status) {
-    case weave::RegistrationStatus::kUnconfigured:
-      return "unconfigured";
-    case weave::RegistrationStatus::kConnecting:
-      return "connecting";
-    case weave::RegistrationStatus::kConnected:
-      return "connected";
-    case weave::RegistrationStatus::kInvalidCredentials:
-      return "invalid_credentials";
-  }
-  CHECK(0) << "Unknown status";
-  return "unknown";
-}
-
 }  // anonymous namespace
 
 Manager::Manager(const base::WeakPtr<ExportedObjectManager>& object_manager)
@@ -185,8 +172,12 @@
 
   chromeos::ErrorPtr error;
   weave::UserRole role;
-  if (!FromString(in_user_role, &role, &error))
+  if (!StringToEnum(in_user_role, &role)) {
+    chromeos::Error::AddToPrintf(&error, FROM_HERE, kErrorDomain,
+                                 "invalid_user_role", "Invalid role: '%s'",
+                                 in_user_role.c_str());
     return response->ReplyWithError(error.get());
+  }
 
   std::string id;
   if (!device_->GetCommands()->AddCommand(*command, role, &id, &error))
@@ -305,7 +296,7 @@
 }
 
 void Manager::OnRegistrationChanged(weave::RegistrationStatus status) {
-  dbus_adaptor_.SetStatus(StatusToString(status));
+  dbus_adaptor_.SetStatus(weave::EnumToString(status));
 }
 
 void Manager::OnConfigChanged(const weave::BuffetConfig& config) {
@@ -319,22 +310,8 @@
   dbus_adaptor_.SetAnonymousAccessRole(config.local_anonymous_access_role());
 }
 
-void Manager::UpdateWiFiBootstrapState(
-    weave::privet::WifiBootstrapManager::State state) {
-  switch (state) {
-    case weave::WifiSetupState::kDisabled:
-      dbus_adaptor_.SetWiFiBootstrapState("disabled");
-      break;
-    case weave::WifiSetupState::kBootstrapping:
-      dbus_adaptor_.SetWiFiBootstrapState("waiting");
-      break;
-    case weave::WifiSetupState::kMonitoring:
-      dbus_adaptor_.SetWiFiBootstrapState("monitoring");
-      break;
-    case weave::WifiSetupState::kConnecting:
-      dbus_adaptor_.SetWiFiBootstrapState("connecting");
-      break;
-  }
+void Manager::UpdateWiFiBootstrapState(weave::WifiSetupState state) {
+  dbus_adaptor_.SetWiFiBootstrapState(weave::EnumToString(state));
 }
 
 void Manager::OnPairingStart(const std::string& session_id,
@@ -344,7 +321,7 @@
   // the most recent pairing attempt.
   dbus_adaptor_.SetPairingInfo(chromeos::VariantDictionary{
       {kPairingSessionIdKey, session_id},
-      {kPairingModeKey, weave::privet::PairingTypeToString(pairing_type)},
+      {kPairingModeKey, weave::EnumToString(pairing_type)},
       {kPairingCodeKey, code},
   });
 }
