diff --git a/openstack/db/v1/instances/requests.go b/openstack/db/v1/instances/requests.go
index e2b8ad0..f4a63b8 100644
--- a/openstack/db/v1/instances/requests.go
+++ b/openstack/db/v1/instances/requests.go
@@ -42,10 +42,10 @@
 	Name string
 
 	// A slice of database information options.
-	Databases db.BatchCreateOpts
+	Databases db.CreateOptsBuilder
 
 	// A slice of user information options.
-	Users users.BatchCreateOpts
+	Users users.CreateOptsBuilder
 
 	// Options to configure the type of datastore the instance will use. This is
 	// optional, and if excluded will default to MySQL.
@@ -69,14 +69,14 @@
 	if opts.Name != "" {
 		instance["name"] = opts.Name
 	}
-	if len(opts.Databases) > 0 {
+	if opts.Databases != nil {
 		dbs, err := opts.Databases.ToDBCreateMap()
 		if err != nil {
 			return nil, err
 		}
 		instance["databases"] = dbs["databases"]
 	}
-	if len(opts.Users) > 0 {
+	if opts.Users != nil {
 		users, err := opts.Users.ToUserCreateMap()
 		if err != nil {
 			return nil, err
diff --git a/rackspace/db/v1/instances/requests.go b/rackspace/db/v1/instances/requests.go
index c8876da..f4df692 100644
--- a/rackspace/db/v1/instances/requests.go
+++ b/rackspace/db/v1/instances/requests.go
@@ -24,10 +24,10 @@
 	Name string
 
 	// A slice of database information options.
-	Databases osDBs.BatchCreateOpts
+	Databases osDBs.CreateOptsBuilder
 
 	// A slice of user information options.
-	Users osUsers.BatchCreateOpts
+	Users osUsers.CreateOptsBuilder
 
 	// ID of the configuration group to associate with the instance. Optional.
 	ConfigID string
diff --git a/rackspace/db/v1/users/requests.go b/rackspace/db/v1/users/requests.go
index aab7e41..74e47ab 100644
--- a/rackspace/db/v1/users/requests.go
+++ b/rackspace/db/v1/users/requests.go
@@ -29,7 +29,7 @@
 
 	ChangePassword(client, "instance_id", opts)
 */
-func ChangePassword(client *gophercloud.ServiceClient, instanceID string, opts os.BatchCreateOpts) UpdatePasswordsResult {
+func ChangePassword(client *gophercloud.ServiceClient, instanceID string, opts os.CreateOptsBuilder) UpdatePasswordsResult {
 	var res UpdatePasswordsResult
 
 	reqBody, err := opts.ToUserCreateMap()
@@ -142,7 +142,7 @@
 
 	GrantAccess(client, "instance_id", "user_name", opts)
 */
-func GrantAccess(client *gophercloud.ServiceClient, instanceID, userName string, opts db.BatchCreateOpts) GrantAccessResult {
+func GrantAccess(client *gophercloud.ServiceClient, instanceID, userName string, opts db.CreateOptsBuilder) GrantAccessResult {
 	var res GrantAccessResult
 
 	reqBody, err := opts.ToDBCreateMap()
