diff --git a/libweave/include/weave/settings.h b/libweave/include/weave/settings.h
index 84d7e0b..1c919a1 100644
--- a/libweave/include/weave/settings.h
+++ b/libweave/include/weave/settings.h
@@ -56,10 +56,6 @@
   base::TimeDelta backup_polling_period;
   bool wifi_auto_setup_enabled{true};
   bool ble_setup_enabled{false};
-  std::string refresh_token;
-  std::string robot_account;
-  std::string last_configured_ssid;
-  std::string secret;
 };
 
 }  // namespace weave
diff --git a/libweave/src/config.cc b/libweave/src/config.cc
index 5370ec0..f601b82 100644
--- a/libweave/src/config.cc
+++ b/libweave/src/config.cc
@@ -47,8 +47,8 @@
   return StringToEnum(role, &scope);
 }
 
-Settings CreateDefaultSettings() {
-  Settings result;
+Config::Settings CreateDefaultSettings() {
+  Config::Settings result;
   result.oauth_url = "https://accounts.google.com/o/oauth2/";
   result.service_url = "https://www.googleapis.com/clouddevices/v1/";
   result.local_anonymous_access_role = "viewer";
@@ -78,7 +78,7 @@
   callback.Run(settings_);
 }
 
-const Settings& Config::GetSettings() const {
+const Config::Settings& Config::GetSettings() const {
   return settings_;
 }
 
diff --git a/libweave/src/config.h b/libweave/src/config.h
index e014f20..5baff87 100644
--- a/libweave/src/config.h
+++ b/libweave/src/config.h
@@ -22,13 +22,20 @@
 // Handles reading buffet config and state files.
 class Config final {
  public:
-  using OnChangedCallback = base::Callback<void(const Settings&)>;
+  struct Settings : public weave::Settings {
+    std::string refresh_token;
+    std::string robot_account;
+    std::string last_configured_ssid;
+    std::string secret;
+  };
+
+  using OnChangedCallback = base::Callback<void(const weave::Settings&)>;
   ~Config() = default;
 
   explicit Config(provider::ConfigStore* config_store);
 
   void AddOnChangedCallback(const OnChangedCallback& callback);
-  const Settings& GetSettings() const;
+  const Config::Settings& GetSettings() const;
 
   void Load();
 
diff --git a/libweave/src/config_unittest.cc b/libweave/src/config_unittest.cc
index fd6b8d3..02885e1 100644
--- a/libweave/src/config_unittest.cc
+++ b/libweave/src/config_unittest.cc
@@ -29,9 +29,9 @@
     default_.Load();
   }
 
-  const Settings& GetSettings() const { return config_.GetSettings(); }
+  const Config::Settings& GetSettings() const { return config_.GetSettings(); }
 
-  const Settings& GetDefaultSettings() const { return default_.GetSettings(); }
+  const Config::Settings& GetDefaultSettings() const { return default_.GetSettings(); }
 
   MOCK_METHOD1(OnConfigChanged, void(const Settings&));
 
diff --git a/libweave/src/device_registration_info.h b/libweave/src/device_registration_info.h
index f73d450..14ddc1d 100644
--- a/libweave/src/device_registration_info.h
+++ b/libweave/src/device_registration_info.h
@@ -131,7 +131,7 @@
                      const base::Closure& on_error) override;
 
   // TODO(vitalybuka): remove getters and pass config to dependent code.
-  const Settings& GetSettings() const { return config_->GetSettings(); }
+  const Config::Settings& GetSettings() const { return config_->GetSettings(); }
   Config* GetMutableConfig() { return config_.get(); }
 
  private:
diff --git a/libweave/src/device_registration_info_unittest.cc b/libweave/src/device_registration_info_unittest.cc
index 947ba10..10bbc07 100644
--- a/libweave/src/device_registration_info_unittest.cc
+++ b/libweave/src/device_registration_info_unittest.cc
@@ -494,9 +494,9 @@
   EXPECT_EQ(RegistrationStatus::kConnecting, GetRegistrationStatus());
 
   // Validate the device info saved to storage...
-  EXPECT_EQ(test_data::kDeviceId, saved_settings.cloud_id);
-  EXPECT_EQ(test_data::kRefreshToken, saved_settings.refresh_token);
-  EXPECT_EQ(test_data::kRobotAccountEmail, saved_settings.robot_account);
+  EXPECT_EQ(test_data::kDeviceId, dev_reg_->GetSettings().cloud_id);
+  EXPECT_EQ(test_data::kRefreshToken, dev_reg_->GetSettings().refresh_token);
+  EXPECT_EQ(test_data::kRobotAccountEmail, dev_reg_->GetSettings().robot_account);
 }
 
 TEST_F(DeviceRegistrationInfoTest, OOBRegistrationStatus) {
