diff --git a/libweave/include/weave/command.h b/libweave/include/weave/command.h
index 0df4878..c27b49d 100644
--- a/libweave/include/weave/command.h
+++ b/libweave/include/weave/command.h
@@ -12,9 +12,24 @@
 
 class Command {
  public:
+  // This interface lets the command to notify clients about changes.
+  class Observer {
+   public:
+    virtual ~Observer() = default;
+
+    virtual void OnResultsChanged() = 0;
+    virtual void OnStatusChanged() = 0;
+    virtual void OnProgressChanged() = 0;
+    virtual void OnCommandDestroyed() = 0;
+  };
+
   // Returns JSON representation of the command.
   virtual std::unique_ptr<base::DictionaryValue> ToJson() const = 0;
 
+  // Adds an observer for this command. The observer object is not owned by this
+  // class.
+  virtual void AddObserver(Observer* observer) = 0;
+
  protected:
   virtual ~Command() = default;
 };
diff --git a/libweave/src/commands/cloud_command_proxy.h b/libweave/src/commands/cloud_command_proxy.h
index 7998df6..db03885 100644
--- a/libweave/src/commands/cloud_command_proxy.h
+++ b/libweave/src/commands/cloud_command_proxy.h
@@ -17,15 +17,15 @@
 #include <chromeos/backoff_entry.h>
 
 #include "libweave/src/commands/cloud_command_update_interface.h"
-#include "libweave/src/commands/command_proxy_interface.h"
 #include "libweave/src/states/state_change_queue_interface.h"
+#include "weave/command.h"
 
 namespace weave {
 
 class CommandInstance;
 
 // Command proxy which publishes command updates to the cloud.
-class CloudCommandProxy final : public CommandObserver {
+class CloudCommandProxy final : public Command::Observer {
  public:
   CloudCommandProxy(CommandInstance* command_instance,
                     CloudCommandUpdateInterface* cloud_command_updater,
diff --git a/libweave/src/commands/command_instance.cc b/libweave/src/commands/command_instance.cc
index 2cfe3d5..37a1ddc 100644
--- a/libweave/src/commands/command_instance.cc
+++ b/libweave/src/commands/command_instance.cc
@@ -10,7 +10,6 @@
 
 #include "libweave/src/commands/command_definition.h"
 #include "libweave/src/commands/command_dictionary.h"
-#include "libweave/src/commands/command_proxy_interface.h"
 #include "libweave/src/commands/command_queue.h"
 #include "libweave/src/commands/prop_types.h"
 #include "libweave/src/commands/schema_constants.h"
@@ -172,7 +171,7 @@
   return json;
 }
 
-void CommandInstance::AddObserver(CommandObserver* observer) {
+void CommandInstance::AddObserver(Observer* observer) {
   observers_.push_back(observer);
 }
 
diff --git a/libweave/src/commands/command_instance.h b/libweave/src/commands/command_instance.h
index d80e0b9..a64fc7c 100644
--- a/libweave/src/commands/command_instance.h
+++ b/libweave/src/commands/command_instance.h
@@ -41,6 +41,7 @@
 
   // Command overrides.
   std::unique_ptr<base::DictionaryValue> ToJson() const override;
+  void AddObserver(Observer* observer) override;
 
   // Returns the full command ID.
   const std::string& GetID() const { return id_; }
@@ -81,9 +82,6 @@
   // Sets the command ID (normally done by CommandQueue when the command
   // instance is added to it).
   void SetID(const std::string& id) { id_ = id; }
-  // Adds a observer for this command. The observer object is not owned by this
-  // class.
-  void AddObserver(CommandObserver* observer);
   // Sets the pointer to queue this command is part of.
   void SetCommandQueue(CommandQueue* queue) { queue_ = queue; }
 
@@ -142,7 +140,7 @@
   // Current command status.
   std::string status_ = kStatusQueued;
   // Command observer for the command.
-  std::vector<CommandObserver*> observers_;
+  std::vector<Observer*> observers_;
   // Pointer to the command queue this command instance is added to.
   // The queue owns the command instance, so it outlives this object.
   CommandQueue* queue_ = nullptr;
diff --git a/libweave/src/commands/command_proxy_interface.h b/libweave/src/commands/command_proxy_interface.h
deleted file mode 100644
index 3aeb9bb..0000000
--- a/libweave/src/commands/command_proxy_interface.h
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2014 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef LIBWEAVE_SRC_COMMANDS_COMMAND_PROXY_INTERFACE_H_
-#define LIBWEAVE_SRC_COMMANDS_COMMAND_PROXY_INTERFACE_H_
-
-#include <string>
-
-#include "libweave/src/commands/schema_utils.h"
-
-namespace weave {
-
-// This interface lets the command instance to update its proxy of command
-// state changes, so that the proxy can then notify clients of the changes over
-// their supported protocol (e.g. D-Bus).
-class CommandObserver {
- public:
-  virtual ~CommandObserver() = default;
-
-  virtual void OnResultsChanged() = 0;
-  virtual void OnStatusChanged() = 0;
-  virtual void OnProgressChanged() = 0;
-  virtual void OnCommandDestroyed() = 0;
-};
-
-}  // namespace weave
-
-#endif  // LIBWEAVE_SRC_COMMANDS_COMMAND_PROXY_INTERFACE_H_
diff --git a/libweave/src/commands/dbus_command_proxy.h b/libweave/src/commands/dbus_command_proxy.h
index 3f802ed..62225c7 100644
--- a/libweave/src/commands/dbus_command_proxy.h
+++ b/libweave/src/commands/dbus_command_proxy.h
@@ -12,7 +12,7 @@
 #include <chromeos/dbus/dbus_object.h>
 
 #include "buffet/org.chromium.Buffet.Command.h"
-#include "libweave/src/commands/command_proxy_interface.h"
+#include "weave/command.h"
 
 namespace chromeos {
 namespace dbus_utils {
@@ -24,7 +24,7 @@
 
 class CommandInstance;
 
-class DBusCommandProxy : public CommandObserver,
+class DBusCommandProxy : public Command::Observer,
                          public org::chromium::Buffet::CommandInterface {
  public:
   DBusCommandProxy(chromeos::dbus_utils::ExportedObjectManager* object_manager,
diff --git a/libweave/src/commands/dbus_command_proxy_unittest.cc b/libweave/src/commands/dbus_command_proxy_unittest.cc
index 32a36b6..ed51387 100644
--- a/libweave/src/commands/dbus_command_proxy_unittest.cc
+++ b/libweave/src/commands/dbus_command_proxy_unittest.cc
@@ -109,7 +109,7 @@
     EXPECT_CALL(*mock_exported_object_command_, ExportMethod(_, _, _, _))
         .Times(AnyNumber());
 
-    std::unique_ptr<CommandObserver> command_proxy(
+    std::unique_ptr<Command::Observer> command_proxy(
         new DBusCommandProxy(nullptr, bus_, command_instance_.get(), cmd_path));
     command_instance_->AddObserver(command_proxy.release());
     GetCommandProxy()->RegisterAsync(
diff --git a/libweave/src/device_registration_info.cc b/libweave/src/device_registration_info.cc
index fdc933c..5979ac6 100644
--- a/libweave/src/device_registration_info.cc
+++ b/libweave/src/device_registration_info.cc
@@ -938,7 +938,7 @@
               << "' arrived, ID: " << command_instance->GetID();
     std::unique_ptr<chromeos::BackoffEntry> backoff_entry{
         new chromeos::BackoffEntry{cloud_backoff_policy_.get()}};
-    std::unique_ptr<CommandObserver> cloud_proxy{new CloudCommandProxy{
+    std::unique_ptr<Command::Observer> cloud_proxy{new CloudCommandProxy{
         command_instance.get(), this, state_manager_->GetStateChangeQueue(),
         std::move(backoff_entry), task_runner_}};
     command_instance->AddObserver(cloud_proxy.release());
