diff --git a/rackspace/client.go b/rackspace/client.go
index cc10688..a8f413e 100644
--- a/rackspace/client.go
+++ b/rackspace/client.go
@@ -213,7 +213,7 @@
 	return &gophercloud.ServiceClient{ProviderClient: client, Endpoint: url}, nil
 }
 
-// NewOrchestrationV1 creates a ServiceClient that may be used to access the v1 DB service.
+// NewDBV1 creates a ServiceClient that may be used to access the v1 DB service.
 func NewDBV1(client *gophercloud.ProviderClient, eo gophercloud.EndpointOpts) (*gophercloud.ServiceClient, error) {
 	eo.ApplyDefaults("rax:database")
 	url, err := client.EndpointLocator(eo)
diff --git a/rackspace/db/v1/instances/delegate.go b/rackspace/db/v1/instances/delegate.go
index 40838f7..f2656fe 100644
--- a/rackspace/db/v1/instances/delegate.go
+++ b/rackspace/db/v1/instances/delegate.go
@@ -28,17 +28,17 @@
 	return os.IsRootEnabled(client, id)
 }
 
-// RestartService will restart only the MySQL Instance. Restarting MySQL will
+// Restart will restart only the MySQL Instance. Restarting MySQL will
 // erase any dynamic configuration settings that you have made within MySQL.
 // The MySQL service will be unavailable until the instance restarts.
-func RestartService(client *gophercloud.ServiceClient, id string) os.ActionResult {
-	return os.RestartService(client, id)
+func Restart(client *gophercloud.ServiceClient, id string) os.ActionResult {
+	return os.Restart(client, id)
 }
 
-// ResizeInstance changes the memory size of the instance, assuming a valid
+// Resize changes the memory size of the instance, assuming a valid
 // flavorRef is provided. It will also restart the MySQL service.
-func ResizeInstance(client *gophercloud.ServiceClient, id, flavorRef string) os.ActionResult {
-	return os.ResizeInstance(client, id, flavorRef)
+func Resize(client *gophercloud.ServiceClient, id, flavorRef string) os.ActionResult {
+	return os.Resize(client, id, flavorRef)
 }
 
 // ResizeVolume will resize the attached volume for an instance. It supports
diff --git a/rackspace/db/v1/instances/delegate_test.go b/rackspace/db/v1/instances/delegate_test.go
index e94ce39..716e0a4 100644
--- a/rackspace/db/v1/instances/delegate_test.go
+++ b/rackspace/db/v1/instances/delegate_test.go
@@ -79,21 +79,21 @@
 	th.AssertDeepEquals(t, expected, user)
 }
 
-func TestRestartService(t *testing.T) {
+func TestRestart(t *testing.T) {
 	th.SetupHTTP()
 	defer th.TeardownHTTP()
 	os.HandleRestart(t)
 
-	res := RestartService(fake.ServiceClient(), instanceID)
+	res := Restart(fake.ServiceClient(), instanceID)
 	th.AssertNoErr(t, res.Err)
 }
 
-func TestResizeInstance(t *testing.T) {
+func TestResize(t *testing.T) {
 	th.SetupHTTP()
 	defer th.TeardownHTTP()
 	os.HandleResize(t)
 
-	res := ResizeInstance(fake.ServiceClient(), instanceID, "2")
+	res := Resize(fake.ServiceClient(), instanceID, "2")
 	th.AssertNoErr(t, res.Err)
 }
 
