diff --git a/libweave/examples/ubuntu/main.cc b/libweave/examples/ubuntu/main.cc
index 7220e85..d9c1283 100644
--- a/libweave/examples/ubuntu/main.cc
+++ b/libweave/examples/ubuntu/main.cc
@@ -29,7 +29,7 @@
 class CommandHandler {
  public:
   explicit CommandHandler(weave::Device* device) : device_{device} {
-    device->GetCommands()->AddOnCommandAddedCallback(base::Bind(
+    device->GetCommands()->AddCommandAddedCallback(base::Bind(
         &CommandHandler::OnNewCommand, weak_ptr_factory_.GetWeakPtr()));
   }
 
diff --git a/libweave/include/weave/commands.h b/libweave/include/weave/commands.h
index c77abcb..cfbfe63 100644
--- a/libweave/include/weave/commands.h
+++ b/libweave/include/weave/commands.h
@@ -16,14 +16,13 @@
 
 class Commands {
  public:
-  using OnCommandCallback = base::Callback<void(Command*)>;
+  using CommandCallback = base::Callback<void(Command*)>;
 
   // Adds notification callback for a new command being added to the queue.
-  virtual void AddOnCommandAddedCallback(const OnCommandCallback& callback) = 0;
+  virtual void AddCommandAddedCallback(const CommandCallback& callback) = 0;
 
   // Adds notification callback for a command being removed from the queue.
-  virtual void AddOnCommandRemovedCallback(
-      const OnCommandCallback& callback) = 0;
+  virtual void AddCommandRemovedCallback(const CommandCallback& callback) = 0;
 
   // Adds a new command to the command queue.
   virtual bool AddCommand(const base::DictionaryValue& command,
diff --git a/libweave/include/weave/test/mock_commands.h b/libweave/include/weave/test/mock_commands.h
index 685fd07..9bae29c 100644
--- a/libweave/include/weave/test/mock_commands.h
+++ b/libweave/include/weave/test/mock_commands.h
@@ -18,8 +18,8 @@
  public:
   ~MockCommands() override = default;
 
-  MOCK_METHOD1(AddOnCommandAddedCallback, void(const OnCommandCallback&));
-  MOCK_METHOD1(AddOnCommandRemovedCallback, void(const OnCommandCallback&));
+  MOCK_METHOD1(AddCommandAddedCallback, void(const CommandCallback&));
+  MOCK_METHOD1(AddCommandRemovedCallback, void(const CommandCallback&));
   MOCK_METHOD3(AddCommand,
                bool(const base::DictionaryValue&, std::string*, ErrorPtr*));
   MOCK_METHOD1(FindCommand, Command*(const std::string&));
diff --git a/libweave/src/base_api_handler.cc b/libweave/src/base_api_handler.cc
index b243f19..69a2838 100644
--- a/libweave/src/base_api_handler.cc
+++ b/libweave/src/base_api_handler.cc
@@ -34,7 +34,7 @@
                                       settings.firmware_version);
   CHECK(state_manager_->SetProperties(state, nullptr));
 
-  command_manager->AddOnCommandAddedCallback(base::Bind(
+  command_manager->AddCommandAddedCallback(base::Bind(
       &BaseApiHandler::OnCommandAdded, weak_ptr_factory_.GetWeakPtr()));
 }
 
diff --git a/libweave/src/commands/command_manager.cc b/libweave/src/commands/command_manager.cc
index 2add19e..11a1c40 100644
--- a/libweave/src/commands/command_manager.cc
+++ b/libweave/src/commands/command_manager.cc
@@ -55,7 +55,7 @@
 
 CommandManager::~CommandManager() {}
 
-void CommandManager::AddOnCommandDefChanged(const base::Closure& callback) {
+void CommandManager::AddCommandDefChanged(const base::Closure& callback) {
   on_command_changed_.push_back(callback);
   callback.Run();
 }
@@ -175,14 +175,13 @@
   return true;
 }
 
-void CommandManager::AddOnCommandAddedCallback(
-    const OnCommandCallback& callback) {
-  command_queue_.AddOnCommandAddedCallback(callback);
+void CommandManager::AddCommandAddedCallback(const CommandCallback& callback) {
+  command_queue_.AddCommandAddedCallback(callback);
 }
 
-void CommandManager::AddOnCommandRemovedCallback(
-    const OnCommandCallback& callback) {
-  command_queue_.AddOnCommandRemovedCallback(callback);
+void CommandManager::AddCommandRemovedCallback(
+    const CommandCallback& callback) {
+  command_queue_.AddCommandRemovedCallback(callback);
 }
 
 }  // namespace weave
diff --git a/libweave/src/commands/command_manager.h b/libweave/src/commands/command_manager.h
index 2485233..2b2f83d 100644
--- a/libweave/src/commands/command_manager.h
+++ b/libweave/src/commands/command_manager.h
@@ -39,11 +39,11 @@
                   std::string* id,
                   ErrorPtr* error) override;
   CommandInstance* FindCommand(const std::string& id) override;
-  void AddOnCommandAddedCallback(const OnCommandCallback& callback) override;
-  void AddOnCommandRemovedCallback(const OnCommandCallback& callback) override;
+  void AddCommandAddedCallback(const CommandCallback& callback) override;
+  void AddCommandRemovedCallback(const CommandCallback& callback) override;
 
   // Sets callback which is called when command definitions is changed.
-  void AddOnCommandDefChanged(const base::Closure& callback);
+  void AddCommandDefChanged(const base::Closure& callback);
 
   // Returns the command definitions for the device.
   const CommandDictionary& GetCommandDictionary() const;
diff --git a/libweave/src/commands/command_manager_unittest.cc b/libweave/src/commands/command_manager_unittest.cc
index ef77f4b..3e0d383 100644
--- a/libweave/src/commands/command_manager_unittest.cc
+++ b/libweave/src/commands/command_manager_unittest.cc
@@ -131,7 +131,7 @@
   CommandManager manager;
   int update_count = 0;
   auto on_command_change = [&update_count]() { update_count++; };
-  manager.AddOnCommandDefChanged(base::Bind(on_command_change));
+  manager.AddCommandDefChanged(base::Bind(on_command_change));
 
   auto json = CreateDictionaryValue(R"({
     'foo': {
diff --git a/libweave/src/commands/command_queue.cc b/libweave/src/commands/command_queue.cc
index f172f8e..46385de 100644
--- a/libweave/src/commands/command_queue.cc
+++ b/libweave/src/commands/command_queue.cc
@@ -13,16 +13,16 @@
 const int kRemoveCommandDelayMin = 5;
 }
 
-void CommandQueue::AddOnCommandAddedCallback(
-    const Commands::OnCommandCallback& callback) {
+void CommandQueue::AddCommandAddedCallback(
+    const Commands::CommandCallback& callback) {
   on_command_added_.push_back(callback);
   // Send all pre-existed commands.
   for (const auto& command : map_)
     callback.Run(command.second.get());
 }
 
-void CommandQueue::AddOnCommandRemovedCallback(
-    const Commands::OnCommandCallback& callback) {
+void CommandQueue::AddCommandRemovedCallback(
+    const Commands::CommandCallback& callback) {
   on_command_removed_.push_back(callback);
 }
 
diff --git a/libweave/src/commands/command_queue.h b/libweave/src/commands/command_queue.h
index 36a2449..4b2e47c 100644
--- a/libweave/src/commands/command_queue.h
+++ b/libweave/src/commands/command_queue.h
@@ -26,10 +26,10 @@
   CommandQueue() = default;
 
   // Adds notifications callback for a new command is added to the queue.
-  void AddOnCommandAddedCallback(const Commands::OnCommandCallback& callback);
+  void AddCommandAddedCallback(const Commands::CommandCallback& callback);
 
   // Adds notifications callback for a command is removed from the queue.
-  void AddOnCommandRemovedCallback(const Commands::OnCommandCallback& callback);
+  void AddCommandRemovedCallback(const Commands::CommandCallback& callback);
 
   // Checks if the command queue is empty.
   bool IsEmpty() const { return map_.empty(); }
@@ -75,7 +75,7 @@
   // Queue of commands to be removed.
   std::queue<std::pair<base::Time, std::string>> remove_queue_;
 
-  using CallbackList = std::vector<Commands::OnCommandCallback>;
+  using CallbackList = std::vector<Commands::CommandCallback>;
   CallbackList on_command_added_;
   CallbackList on_command_removed_;
 
diff --git a/libweave/src/commands/command_queue_unittest.cc b/libweave/src/commands/command_queue_unittest.cc
index dc02d9c..d119f74 100644
--- a/libweave/src/commands/command_queue_unittest.cc
+++ b/libweave/src/commands/command_queue_unittest.cc
@@ -48,9 +48,9 @@
 class FakeDispatcher {
  public:
   explicit FakeDispatcher(CommandQueue* queue) {
-    queue->AddOnCommandAddedCallback(base::Bind(
-        &FakeDispatcher::OnCommandAdded, weak_ptr_factory_.GetWeakPtr()));
-    queue->AddOnCommandRemovedCallback(base::Bind(
+    queue->AddCommandAddedCallback(base::Bind(&FakeDispatcher::OnCommandAdded,
+                                              weak_ptr_factory_.GetWeakPtr()));
+    queue->AddCommandRemovedCallback(base::Bind(
         &FakeDispatcher::OnCommandRemoved, weak_ptr_factory_.GetWeakPtr()));
   }
 
diff --git a/libweave/src/device_registration_info.cc b/libweave/src/device_registration_info.cc
index 1f0b73f..e9e267a 100644
--- a/libweave/src/device_registration_info.cc
+++ b/libweave/src/device_registration_info.cc
@@ -240,7 +240,7 @@
   cloud_backoff_entry_.reset(new BackoffEntry{cloud_backoff_policy_.get()});
   oauth2_backoff_entry_.reset(new BackoffEntry{cloud_backoff_policy_.get()});
 
-  command_manager_->AddOnCommandDefChanged(
+  command_manager_->AddCommandDefChanged(
       base::Bind(&DeviceRegistrationInfo::OnCommandDefsChanged,
                  weak_factory_.GetWeakPtr()));
   state_manager_->AddChangedCallback(base::Bind(
diff --git a/libweave/src/privet/cloud_delegate.cc b/libweave/src/privet/cloud_delegate.cc
index 57c8fa1..309876a 100644
--- a/libweave/src/privet/cloud_delegate.cc
+++ b/libweave/src/privet/cloud_delegate.cc
@@ -52,11 +52,11 @@
     device_->AddGcdStateChangedCallback(base::Bind(
         &CloudDelegateImpl::OnRegistrationChanged, weak_factory_.GetWeakPtr()));
 
-    command_manager_->AddOnCommandDefChanged(base::Bind(
+    command_manager_->AddCommandDefChanged(base::Bind(
         &CloudDelegateImpl::OnCommandDefChanged, weak_factory_.GetWeakPtr()));
-    command_manager_->AddOnCommandAddedCallback(base::Bind(
+    command_manager_->AddCommandAddedCallback(base::Bind(
         &CloudDelegateImpl::OnCommandAdded, weak_factory_.GetWeakPtr()));
-    command_manager_->AddOnCommandRemovedCallback(base::Bind(
+    command_manager_->AddCommandRemovedCallback(base::Bind(
         &CloudDelegateImpl::OnCommandRemoved, weak_factory_.GetWeakPtr()));
 
     state_manager_->AddChangedCallback(base::Bind(
