diff --git a/rackspace/db/v1/instances/delegate.go b/rackspace/db/v1/instances/delegate.go
index ca585e2..f072d84 100644
--- a/rackspace/db/v1/instances/delegate.go
+++ b/rackspace/db/v1/instances/delegate.go
@@ -109,30 +109,45 @@
 	return os.List(client)
 }
 
+// Get retrieves the status and information for a specified database instance.
 func Get(client *gophercloud.ServiceClient, id string) GetResult {
 	return GetResult{os.Get(client, id)}
 }
 
+// Delete permanently destroys the database instance.
 func Delete(client *gophercloud.ServiceClient, id string) os.DeleteResult {
 	return os.Delete(client, id)
 }
 
+// EnableRootUser enables the login from any host for the root user and
+// provides the user with a generated root password.
 func EnableRootUser(client *gophercloud.ServiceClient, id string) os.UserRootResult {
 	return os.EnableRootUser(client, id)
 }
 
+// IsRootEnabled checks an instance to see if root access is enabled. It returns
+// True if root user is enabled for the specified database instance or False
+// otherwise.
 func IsRootEnabled(client *gophercloud.ServiceClient, id string) (bool, error) {
 	return os.IsRootEnabled(client, id)
 }
 
+// RestartService 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)
 }
 
+// ResizeInstance 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)
 }
 
+// ResizeVolume will resize the attached volume for an instance. It supports
+// only increasing the volume size and does not support decreasing the size.
+// The volume size is in gigabytes (GB) and must be an integer.
 func ResizeVolume(client *gophercloud.ServiceClient, id string, size int) os.ActionResult {
 	return os.ResizeVolume(client, id, size)
 }
