diff --git a/libweave/examples/ubuntu/main.cc b/libweave/examples/ubuntu/main.cc
index cdeae8b..43c13ec 100644
--- a/libweave/examples/ubuntu/main.cc
+++ b/libweave/examples/ubuntu/main.cc
@@ -104,8 +104,7 @@
   weave::examples::HttpServerImpl http_server{&task_runner};
   weave::examples::BluetoothImpl bluetooth;
 
-  auto device = weave::Device::Create();
-  device->Start(
+  auto device = weave::Device::Create(
       &config_store, &task_runner, &http_client, &network, &dns_sd,
       &http_server,
       weave::examples::NetworkImpl::HasWifiCapability() ? &network : nullptr,
diff --git a/libweave/include/weave/device.h b/libweave/include/weave/device.h
index 260790f..57895b2 100644
--- a/libweave/include/weave/device.h
+++ b/libweave/include/weave/device.h
@@ -35,15 +35,6 @@
  public:
   virtual ~Device() = default;
 
-  virtual void Start(provider::ConfigStore* config_store,
-                     provider::TaskRunner* task_runner,
-                     provider::HttpClient* http_client,
-                     provider::Network* network,
-                     provider::DnsServiceDiscovery* dns_sd,
-                     provider::HttpServer* http_server,
-                     provider::Wifi* wifi,
-                     provider::Bluetooth* bluetooth_provider) = 0;
-
   // Returns reference the current settings.
   virtual const Settings& GetSettings() = 0;
 
@@ -84,7 +75,15 @@
       const PairingBeginCallback& begin_callback,
       const PairingEndCallback& end_callback) = 0;
 
-  LIBWEAVE_EXPORT static std::unique_ptr<Device> Create();
+  LIBWEAVE_EXPORT static std::unique_ptr<Device> Create(
+      provider::ConfigStore* config_store,
+      provider::TaskRunner* task_runner,
+      provider::HttpClient* http_client,
+      provider::Network* network,
+      provider::DnsServiceDiscovery* dns_sd,
+      provider::HttpServer* http_server,
+      provider::Wifi* wifi,
+      provider::Bluetooth* bluetooth_provider);
 };
 
 }  // namespace weave
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc
index 5a8e630..46d5de9 100644
--- a/libweave/src/device_manager.cc
+++ b/libweave/src/device_manager.cc
@@ -25,18 +25,14 @@
 
 }  // namespace
 
-DeviceManager::DeviceManager() {}
-
-DeviceManager::~DeviceManager() {}
-
-void DeviceManager::Start(provider::ConfigStore* config_store,
-                          provider::TaskRunner* task_runner,
-                          provider::HttpClient* http_client,
-                          provider::Network* network,
-                          provider::DnsServiceDiscovery* dns_sd,
-                          provider::HttpServer* http_server,
-                          provider::Wifi* wifi,
-                          provider::Bluetooth* bluetooth) {
+DeviceManager::DeviceManager(provider::ConfigStore* config_store,
+                             provider::TaskRunner* task_runner,
+                             provider::HttpClient* http_client,
+                             provider::Network* network,
+                             provider::DnsServiceDiscovery* dns_sd,
+                             provider::HttpServer* http_server,
+                             provider::Wifi* wifi,
+                             provider::Bluetooth* bluetooth) {
   command_manager_ = std::make_shared<CommandManager>();
   command_manager_->Startup(config_store);
   state_change_queue_.reset(new StateChangeQueue(kMaxStateChangeQueueSize));
@@ -63,6 +59,8 @@
   }
 }
 
+DeviceManager::~DeviceManager() {}
+
 const Settings& DeviceManager::GetSettings() {
   return device_info_->GetSettings();
 }
@@ -117,8 +115,17 @@
     privet_->AddOnPairingChangedCallbacks(begin_callback, end_callback);
 }
 
-std::unique_ptr<Device> Device::Create() {
-  return std::unique_ptr<Device>{new DeviceManager};
+std::unique_ptr<Device> Device::Create(provider::ConfigStore* config_store,
+                                       provider::TaskRunner* task_runner,
+                                       provider::HttpClient* http_client,
+                                       provider::Network* network,
+                                       provider::DnsServiceDiscovery* dns_sd,
+                                       provider::HttpServer* http_server,
+                                       provider::Wifi* wifi,
+                                       provider::Bluetooth* bluetooth) {
+  return std::unique_ptr<Device>{
+      new DeviceManager{config_store, task_runner, http_client, network, dns_sd,
+                        http_server, wifi, bluetooth}};
 }
 
 }  // namespace weave
diff --git a/libweave/src/device_manager.h b/libweave/src/device_manager.h
index 787a7be..d96ee9b 100644
--- a/libweave/src/device_manager.h
+++ b/libweave/src/device_manager.h
@@ -23,25 +23,23 @@
 
 class DeviceManager final : public Device {
  public:
-  DeviceManager();
+  DeviceManager(provider::ConfigStore* config_store,
+                provider::TaskRunner* task_runner,
+                provider::HttpClient* http_client,
+                provider::Network* network,
+                provider::DnsServiceDiscovery* dns_sd,
+                provider::HttpServer* http_server,
+                provider::Wifi* wifi,
+                provider::Bluetooth* bluetooth);
   ~DeviceManager() override;
 
   // Device implementation.
-  void Start(provider::ConfigStore* config_store,
-             provider::TaskRunner* task_runner,
-             provider::HttpClient* http_client,
-             provider::Network* network,
-             provider::DnsServiceDiscovery* dns_sd,
-             provider::HttpServer* http_server,
-             provider::Wifi* wifi,
-             provider::Bluetooth* bluetooth) override;
   const Settings& GetSettings() override;
   void AddSettingsChangedCallback(
       const SettingsChangedCallback& callback) override;
   Commands* GetCommands() override;
   State* GetState() override;
-  std::string RegisterDevice(const std::string& ticket_id,
-                             ErrorPtr* error) override;
+  std::string Register(const std::string& ticket_id, ErrorPtr* error) override;
 
   GcdState GetGcdState() const override;
   void AddGcdStateChangedCallback(
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc
index e211392..8776ba6 100644
--- a/libweave/src/weave_unittest.cc
+++ b/libweave/src/weave_unittest.cc
@@ -134,7 +134,7 @@
 
 class WeaveTest : public ::testing::Test {
  protected:
-  void SetUp() override { device_ = weave::Device::Create(); }
+  void SetUp() override {}
 
   void ExpectRequest(const std::string& method,
                      const std::string& url,
@@ -235,8 +235,9 @@
   }
 
   void StartDevice() {
-    device_->Start(&config_store_, &task_runner_, &http_client_, &network_,
-                   &dns_sd_, &http_server_, &wifi_, &bluetooth_);
+    device_ = weave::Device::Create(&config_store_, &task_runner_,
+                                    &http_client_, &network_, &dns_sd_,
+                                    &http_server_, &wifi_, &bluetooth_);
 
     for (const auto& cb : http_server_changed_cb_)
       cb.Run(http_server_);
@@ -270,14 +271,10 @@
   std::unique_ptr<weave::Device> device_;
 };
 
-TEST_F(WeaveTest, Create) {
-  ASSERT_TRUE(device_.get());
-}
-
 TEST_F(WeaveTest, StartMinimal) {
   InitConfigStore();
-  device_->Start(&config_store_, &task_runner_, &http_client_, &network_,
-                 nullptr, nullptr, &wifi_, nullptr);
+  device_ = weave::Device::Create(&config_store_, &task_runner_, &http_client_,
+                                  &network_, nullptr, nullptr, &wifi_, nullptr);
 }
 
 TEST_F(WeaveTest, StartNoWifi) {
@@ -287,8 +284,9 @@
   InitDnsSd();
   InitDnsSdPublishing(false, "CB");
 
-  device_->Start(&config_store_, &task_runner_, &http_client_, &network_,
-                 &dns_sd_, &http_server_, nullptr, &bluetooth_);
+  device_ = weave::Device::Create(&config_store_, &task_runner_, &http_client_,
+                                  &network_, &dns_sd_, &http_server_, nullptr,
+                                  &bluetooth_);
 
   for (const auto& cb : http_server_changed_cb_)
     cb.Run(http_server_);
@@ -336,7 +334,7 @@
 
   InitDnsSdPublishing(true, "DB");
 
-  EXPECT_EQ("CLOUD_ID", device_->RegisterDevice("TICKET_ID", nullptr));
+  EXPECT_EQ("CLOUD_ID", device_->Register("TICKET_ID", nullptr));
 }
 
 class WeaveWiFiSetupTest : public WeaveTest {
