diff --git a/src/privet/cloud_delegate.cc b/src/privet/cloud_delegate.cc
index 65e4b87..ef9c59e 100644
--- a/src/privet/cloud_delegate.cc
+++ b/src/privet/cloud_delegate.cc
@@ -49,18 +49,10 @@
     device_->AddGcdStateChangedCallback(base::Bind(
         &CloudDelegateImpl::OnRegistrationChanged, weak_factory_.GetWeakPtr()));
 
-    component_manager_->AddTraitDefChangedCallback(
-        base::Bind(&CloudDelegateImpl::NotifyOnTraitDefsChanged,
-                   weak_factory_.GetWeakPtr()));
     component_manager_->AddCommandAddedCallback(base::Bind(
         &CloudDelegateImpl::OnCommandAdded, weak_factory_.GetWeakPtr()));
     component_manager_->AddCommandRemovedCallback(base::Bind(
         &CloudDelegateImpl::OnCommandRemoved, weak_factory_.GetWeakPtr()));
-    component_manager_->AddStateChangedCallback(base::Bind(
-        &CloudDelegateImpl::NotifyOnStateChanged, weak_factory_.GetWeakPtr()));
-    component_manager_->AddComponentTreeChangedCallback(
-        base::Bind(&CloudDelegateImpl::NotifyOnComponentTreeChanged,
-                   weak_factory_.GetWeakPtr()));
   }
 
   ~CloudDelegateImpl() override = default;
@@ -232,6 +224,18 @@
     callback.Run(commands_json, nullptr);
   }
 
+  void AddOnTraitsChangedCallback(const base::Closure& callback) override {
+    component_manager_->AddTraitDefChangedCallback(callback);
+  }
+
+  void AddOnStateChangedCallback(const base::Closure& callback) override {
+    component_manager_->AddStateChangedCallback(callback);
+  }
+
+  void AddOnComponentsChangeCallback(const base::Closure& callback) override {
+    component_manager_->AddComponentTreeChangedCallback(callback);
+  }
+
  private:
   void OnCommandAdded(Command* command) {
     // Set to "" for any new unknown command.
@@ -373,17 +377,5 @@
       new CloudDelegateImpl{task_runner, device, component_manager}};
 }
 
-void CloudDelegate::NotifyOnTraitDefsChanged() {
-  FOR_EACH_OBSERVER(Observer, observer_list_, OnTraitDefsChanged());
-}
-
-void CloudDelegate::NotifyOnComponentTreeChanged() {
-  FOR_EACH_OBSERVER(Observer, observer_list_, OnComponentTreeChanged());
-}
-
-void CloudDelegate::NotifyOnStateChanged() {
-  FOR_EACH_OBSERVER(Observer, observer_list_, OnStateChanged());
-}
-
 }  // namespace privet
 }  // namespace weave
diff --git a/src/privet/cloud_delegate.h b/src/privet/cloud_delegate.h
index 4ded884..6d0ed48 100644
--- a/src/privet/cloud_delegate.h
+++ b/src/privet/cloud_delegate.h
@@ -11,7 +11,6 @@
 
 #include <base/callback.h>
 #include <base/memory/ref_counted.h>
-#include <base/observer_list.h>
 #include <weave/device.h>
 
 #include "src/privet/privet_types.h"
@@ -43,15 +42,6 @@
       base::Callback<void(const base::DictionaryValue& commands,
                           ErrorPtr error)>;
 
-  class Observer {
-   public:
-    virtual ~Observer() {}
-
-    virtual void OnTraitDefsChanged() {}
-    virtual void OnStateChanged() {}
-    virtual void OnComponentTreeChanged() {}
-  };
-
   // Returns the ID of the device.
   virtual std::string GetDeviceId() const = 0;
 
@@ -130,23 +120,15 @@
   virtual void ListCommands(const UserInfo& user_info,
                             const CommandDoneCallback& callback) = 0;
 
-  void AddObserver(Observer* observer) { observer_list_.AddObserver(observer); }
-  void RemoveObserver(Observer* observer) {
-    observer_list_.RemoveObserver(observer);
-  }
-
-  void NotifyOnTraitDefsChanged();
-  void NotifyOnStateChanged();
-  void NotifyOnComponentTreeChanged();
+  virtual void AddOnTraitsChangedCallback(const base::Closure& callback) = 0;
+  virtual void AddOnStateChangedCallback(const base::Closure& callback) = 0;
+  virtual void AddOnComponentsChangeCallback(const base::Closure& callback) = 0;
 
   // Create default instance.
   static std::unique_ptr<CloudDelegate> CreateDefault(
       provider::TaskRunner* task_runner,
       DeviceRegistrationInfo* device,
       ComponentManager* component_manager);
-
- private:
-  base::ObserverList<Observer> observer_list_;
 };
 
 }  // namespace privet
diff --git a/src/privet/mock_delegates.h b/src/privet/mock_delegates.h
index 3fab9d0..3742494 100644
--- a/src/privet/mock_delegates.h
+++ b/src/privet/mock_delegates.h
@@ -20,8 +20,10 @@
 #include "src/privet/wifi_delegate.h"
 
 using testing::_;
+using testing::AtLeast;
 using testing::Return;
 using testing::ReturnRef;
+using testing::SaveArg;
 using testing::SetArgPointee;
 
 namespace weave {
@@ -207,6 +209,9 @@
                     const UserInfo&,
                     const CommandDoneCallback&));
   MOCK_METHOD2(ListCommands, void(const UserInfo&, const CommandDoneCallback&));
+  MOCK_METHOD1(AddOnTraitsChangedCallback, void(const base::Closure&));
+  MOCK_METHOD1(AddOnStateChangedCallback, void(const base::Closure&));
+  MOCK_METHOD1(AddOnComponentsChangeCallback, void(const base::Closure&));
 
   MockCloudDelegate() {
     EXPECT_CALL(*this, GetDeviceId()).WillRepeatedly(Return("TestId"));
@@ -232,12 +237,29 @@
     EXPECT_CALL(*this, MockGetComponentsForUser(_))
         .WillRepeatedly(ReturnRef(test_dict_));
     EXPECT_CALL(*this, FindComponent(_, _)).Times(0);
+
+    EXPECT_CALL(*this, AddOnTraitsChangedCallback(_))
+        .WillRepeatedly(SaveArg<0>(&on_traits_changed_));
+    EXPECT_CALL(*this, AddOnStateChangedCallback(_))
+        .WillRepeatedly(SaveArg<0>(&on_state_changed_));
+    EXPECT_CALL(*this, AddOnComponentsChangeCallback(_))
+        .WillRepeatedly(SaveArg<0>(&on_components_changed_));
   }
 
+  void NotifyOnTraitDefsChanged() { on_traits_changed_.Run(); }
+
+  void NotifyOnComponentTreeChanged() { on_components_changed_.Run(); }
+
+  void NotifyOnStateChanged() { on_state_changed_.Run(); }
+
   ConnectionState connection_state_{ConnectionState::kOnline};
   SetupState setup_state_{SetupState::kNone};
   base::DictionaryValue test_dict_;
 
+  base::Closure on_traits_changed_;
+  base::Closure on_state_changed_;
+  base::Closure on_components_changed_;
+
  private:
   std::unique_ptr<base::DictionaryValue> GetComponentsForUser(
       const UserInfo& user_info) const override {
diff --git a/src/privet/privet_handler.cc b/src/privet/privet_handler.cc
index 3ee8211..7afeb3b 100644
--- a/src/privet/privet_handler.cc
+++ b/src/privet/privet_handler.cc
@@ -398,7 +398,13 @@
   CHECK(device_);
   CHECK(security_);
   CHECK(clock_);
-  cloud_observer_.Add(cloud_);
+
+  cloud_->AddOnTraitsChangedCallback(base::Bind(
+      &PrivetHandler::OnTraitDefsChanged, weak_ptr_factory_.GetWeakPtr()));
+  cloud_->AddOnStateChangedCallback(base::Bind(&PrivetHandler::OnStateChanged,
+                                               weak_ptr_factory_.GetWeakPtr()));
+  cloud_->AddOnComponentsChangeCallback(base::Bind(
+      &PrivetHandler::OnComponentTreeChanged, weak_ptr_factory_.GetWeakPtr()));
 
   AddHandler("/privet/info", &PrivetHandler::HandleInfo, AuthScope::kNone);
   AddHandler("/privet/v3/pairing/start", &PrivetHandler::HandlePairingStart,
diff --git a/src/privet/privet_handler.h b/src/privet/privet_handler.h
index 4eba329..7b212e4 100644
--- a/src/privet/privet_handler.h
+++ b/src/privet/privet_handler.h
@@ -11,7 +11,6 @@
 
 #include <base/macros.h>
 #include <base/memory/weak_ptr.h>
-#include <base/scoped_observer.h>
 #include <base/time/default_clock.h>
 
 #include "src/privet/cloud_delegate.h"
@@ -31,7 +30,7 @@
 
 // Privet V3 HTTP/HTTPS requests handler.
 // API details at https://developers.google.com/cloud-devices/
-class PrivetHandler : public CloudDelegate::Observer {
+class PrivetHandler {
  public:
   // Callback to handle requests asynchronously.
   // |status| is HTTP status code.
@@ -45,11 +44,7 @@
                 SecurityDelegate* pairing,
                 WifiDelegate* wifi,
                 base::Clock* clock = nullptr);
-  ~PrivetHandler() override;
-
-  void OnTraitDefsChanged() override;
-  void OnStateChanged() override;
-  void OnComponentTreeChanged() override;
+  ~PrivetHandler();
 
   std::vector<std::string> GetHttpPaths() const;
   std::vector<std::string> GetHttpsPaths() const;
@@ -138,6 +133,10 @@
   void ReplyToUpdateRequest(const RequestCallback& callback) const;
   void OnUpdateRequestTimeout(int update_request_id);
 
+  void OnTraitDefsChanged();
+  void OnStateChanged();
+  void OnComponentTreeChanged();
+
   CloudDelegate* cloud_{nullptr};
   DeviceDelegate* device_{nullptr};
   SecurityDelegate* security_{nullptr};
@@ -165,7 +164,6 @@
   uint64_t state_fingerprint_{1};
   uint64_t traits_fingerprint_{1};
   uint64_t components_fingerprint_{1};
-  ScopedObserver<CloudDelegate, CloudDelegate::Observer> cloud_observer_{this};
 
   base::WeakPtrFactory<PrivetHandler> weak_ptr_factory_{this};
 
