diff --git a/dbus_service.cc b/dbus_service.cc
index 105d581..4e37221 100644
--- a/dbus_service.cc
+++ b/dbus_service.cc
@@ -30,6 +30,7 @@
 
 using brillo::ErrorPtr;
 using chromeos_update_engine::UpdateEngineService;
+using dlcservice::DlcModuleList;
 using std::string;
 using std::vector;
 using update_engine::StatusResult;
@@ -77,25 +78,17 @@
 }
 
 bool DBusUpdateEngineService::AttemptInstall(ErrorPtr* error,
-                                             const string& dlc_request) {
-  // Parse the raw parameters into protobuf.
-  dlcservice::DlcModuleList dlc_parameters;
-  if (!dlc_parameters.ParseFromString(dlc_request)) {
-    *error = brillo::Error::Create(
-        FROM_HERE, "update_engine", "INTERNAL", "parameters are invalid.");
-    return false;
-  }
-  // Extract fields from the protobuf.
+                                             const DlcModuleList& request) {
   vector<string> dlc_ids;
-  for (const auto& dlc_module_info : dlc_parameters.dlc_module_infos()) {
+  for (const auto& dlc_module_info : request.dlc_module_infos()) {
     if (dlc_module_info.dlc_id().empty()) {
       *error = brillo::Error::Create(
-          FROM_HERE, "update_engine", "INTERNAL", "parameters are invalid.");
+          FROM_HERE, "update_engine", "INTERNAL", "Empty DLC ID passed.");
       return false;
     }
     dlc_ids.push_back(dlc_module_info.dlc_id());
   }
-  return common_->AttemptInstall(error, dlc_parameters.omaha_url(), dlc_ids);
+  return common_->AttemptInstall(error, request.omaha_url(), dlc_ids);
 }
 
 bool DBusUpdateEngineService::AttemptRollback(ErrorPtr* error,
