diff --git a/buffet/main.cc b/buffet/main.cc
index 461680b..7d70ffd 100644
--- a/buffet/main.cc
+++ b/buffet/main.cc
@@ -36,11 +36,8 @@
  protected:
   void RegisterDBusObjectsAsync(AsyncEventSequencer* sequencer) override {
     manager_.reset(new buffet::Manager(object_manager_->AsWeakPtr()));
-    manager_->RegisterAsync(
-        config_path_,
-        state_path_,
-        test_definitions_path_,
-        enable_xmpp_,
+    manager_->Start(
+        config_path_, state_path_, test_definitions_path_, enable_xmpp_,
         sequencer->GetHandler("Manager.RegisterAsync() failed.", true));
   }
 
diff --git a/buffet/manager.cc b/buffet/manager.cc
index 00c5ad2..34dad7a 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -45,11 +45,11 @@
 Manager::~Manager() {
 }
 
-void Manager::RegisterAsync(const base::FilePath& config_path,
-                            const base::FilePath& state_path,
-                            const base::FilePath& test_definitions_path,
-                            bool xmpp_enabled,
-                            const AsyncEventSequencer::CompletionAction& cb) {
+void Manager::Start(const base::FilePath& config_path,
+                    const base::FilePath& state_path,
+                    const base::FilePath& test_definitions_path,
+                    bool xmpp_enabled,
+                    const AsyncEventSequencer::CompletionAction& cb) {
   command_manager_ =
       std::make_shared<CommandManager>(dbus_object_.GetObjectManager());
   command_manager_->SetOnCommandDefChanged(
diff --git a/buffet/manager.h b/buffet/manager.h
index d21f062..6a4f88d 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -47,7 +47,7 @@
           object_manager);
   ~Manager();
 
-  void RegisterAsync(
+  void Start(
       const base::FilePath& config_path,
       const base::FilePath& state_path,
       const base::FilePath& test_definitions_path,
