diff --git a/libweave/include/weave/cloud.h b/libweave/include/weave/cloud.h
index 0ef4c14..3cf1318 100644
--- a/libweave/include/weave/cloud.h
+++ b/libweave/include/weave/cloud.h
@@ -36,24 +36,6 @@
   virtual std::string RegisterDevice(const std::string& ticket_id,
                                      ErrorPtr* error) = 0;
 
-  // Updates basic device information.
-  virtual void UpdateDeviceInfo(const std::string& name,
-                                const std::string& description,
-                                const std::string& location) = 0;
-
-  // Updates base device config.
-  virtual void UpdateBaseConfig(AuthScope anonymous_access_role,
-                                bool local_discovery_enabled,
-                                bool local_pairing_enabled) = 0;
-
-  // Updates GCD service configuration. Usually for testing.
-  virtual bool UpdateServiceConfig(const std::string& client_id,
-                                   const std::string& client_secret,
-                                   const std::string& api_key,
-                                   const std::string& oauth_url,
-                                   const std::string& service_url,
-                                   ErrorPtr* error) = 0;
-
  protected:
   virtual ~Cloud() = default;
 };
diff --git a/libweave/src/commands/command_manager.cc b/libweave/src/commands/command_manager.cc
index 95ca291..cf2fc2d 100644
--- a/libweave/src/commands/command_manager.cc
+++ b/libweave/src/commands/command_manager.cc
@@ -49,7 +49,7 @@
   }
 })";
 
-}
+}  // namespace
 
 CommandManager::CommandManager() {}
 
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc
index c2712e8..cec5e16 100644
--- a/libweave/src/device_manager.cc
+++ b/libweave/src/device_manager.cc
@@ -101,9 +101,10 @@
 }
 
 void DeviceManager::AddPairingChangedCallbacks(
-      const PairingBeginCallback& begin_callback,
-      const PairingEndCallback& end_callback) {
-  privet_->AddOnPairingChangedCallbacks(begin_callback, end_callback);
+    const PairingBeginCallback& begin_callback,
+    const PairingEndCallback& end_callback) {
+  if (privet_)
+    privet_->AddOnPairingChangedCallbacks(begin_callback, end_callback);
 }
 
 std::unique_ptr<Device> Device::Create() {
diff --git a/libweave/src/device_registration_info.h b/libweave/src/device_registration_info.h
index ac8e7a7..38b324b 100644
--- a/libweave/src/device_registration_info.h
+++ b/libweave/src/device_registration_info.h
@@ -68,18 +68,19 @@
       const OnRegistrationChangedCallback& callback) override;
   std::string RegisterDevice(const std::string& ticket_id,
                              ErrorPtr* error) override;
+
   void UpdateDeviceInfo(const std::string& name,
                         const std::string& description,
-                        const std::string& location) override;
+                        const std::string& location);
   void UpdateBaseConfig(AuthScope anonymous_access_role,
                         bool local_discovery_enabled,
-                        bool local_pairing_enabled) override;
+                        bool local_pairing_enabled);
   bool UpdateServiceConfig(const std::string& client_id,
                            const std::string& client_secret,
                            const std::string& api_key,
                            const std::string& oauth_url,
                            const std::string& service_url,
-                           ErrorPtr* error) override;
+                           ErrorPtr* error);
 
   void GetDeviceInfo(const CloudRequestCallback& success_callback,
                      const ErrorCallback& error_callback);
diff --git a/libweave/src/states/state_manager.cc b/libweave/src/states/state_manager.cc
index 0d96175..a04b3e9 100644
--- a/libweave/src/states/state_manager.cc
+++ b/libweave/src/states/state_manager.cc
@@ -40,7 +40,6 @@
     "localPairingEnabled": false
   }
 })";
-
 }
 
 StateManager::StateManager(StateChangeQueueInterface* state_change_queue)
