change 'XXXXOpts' to pointers; return url.URL from BuildQueryString
diff --git a/acceptance/openstack/objectstorage/v1/containers_test.go b/acceptance/openstack/objectstorage/v1/containers_test.go
index 4e361aa..131b320 100644
--- a/acceptance/openstack/objectstorage/v1/containers_test.go
+++ b/acceptance/openstack/objectstorage/v1/containers_test.go
@@ -29,7 +29,7 @@
 
 	// Create numContainers containers.
 	for i := 0; i < len(cNames); i++ {
-		_, err := containers.Create(client, cNames[i], containers.CreateOpts{})
+		_, err := containers.Create(client, cNames[i], nil)
 		if err != nil {
 			t.Error(err)
 		}
@@ -46,7 +46,7 @@
 
 	// List the numContainer names that were just created. To just list those,
 	// the 'prefix' parameter is used.
-	err = containers.List(client, containers.ListOpts{Full: true, Prefix: "gophercloud-test-container-"}).EachPage(func(page pagination.Page) (bool, error) {
+	err = containers.List(client, &containers.ListOpts{Full: true, Prefix: "gophercloud-test-container-"}).EachPage(func(page pagination.Page) (bool, error) {
 		containerList, err := containers.ExtractInfo(page)
 		if err != nil {
 			t.Error(err)
@@ -63,7 +63,7 @@
 	}
 
 	// List the info for the numContainer containers that were created.
-	err = containers.List(client, containers.ListOpts{Full: false, Prefix: "gophercloud-test-container-"}).EachPage(func(page pagination.Page) (bool, error) {
+	err = containers.List(client, &containers.ListOpts{Full: false, Prefix: "gophercloud-test-container-"}).EachPage(func(page pagination.Page) (bool, error) {
 		containerList, err := containers.ExtractNames(page)
 		if err != nil {
 			return false, err
@@ -79,7 +79,7 @@
 	}
 
 	// Update one of the numContainer container metadata.
-	err = containers.Update(client, cNames[0], containers.UpdateOpts{Metadata: metadata})
+	err = containers.Update(client, cNames[0], &containers.UpdateOpts{Metadata: metadata})
 	if err != nil {
 		t.Error(err)
 	}
@@ -89,7 +89,7 @@
 		for k := range metadata {
 			tempMap[k] = ""
 		}
-		err = containers.Update(client, cNames[0], containers.UpdateOpts{Metadata: tempMap})
+		err = containers.Update(client, cNames[0], &containers.UpdateOpts{Metadata: tempMap})
 		if err != nil {
 			t.Error(err)
 		}
diff --git a/acceptance/openstack/objectstorage/v1/objects_test.go b/acceptance/openstack/objectstorage/v1/objects_test.go
index b8dfa40..3e76473 100644
--- a/acceptance/openstack/objectstorage/v1/objects_test.go
+++ b/acceptance/openstack/objectstorage/v1/objects_test.go
@@ -33,7 +33,7 @@
 
 	// Create a container to hold the test objects.
 	cName := tools.RandomString("test-container-", 8)
-	_, err = containers.Create(client, cName, containers.CreateOpts{})
+	_, err = containers.Create(client, cName, nil)
 	if err != nil {
 		t.Error(err)
 		return
@@ -51,7 +51,7 @@
 	oContents := make([]*bytes.Buffer, numObjects)
 	for i := 0; i < numObjects; i++ {
 		oContents[i] = bytes.NewBuffer([]byte(tools.RandomString("", 10)))
-		err = objects.Create(client, cName, oNames[i], oContents[i], objects.CreateOpts{})
+		err = objects.Create(client, cName, oNames[i], oContents[i], nil)
 		if err != nil {
 			t.Error(err)
 			return
@@ -60,12 +60,12 @@
 	// Delete the objects after testing.
 	defer func() {
 		for i := 0; i < numObjects; i++ {
-			err = objects.Delete(client, cName, oNames[i], objects.DeleteOpts{})
+			err = objects.Delete(client, cName, oNames[i], nil)
 		}
 	}()
 
 	ons := make([]string, 0, len(oNames))
-	err = objects.List(client, cName, objects.ListOpts{Full: false, Prefix: "test-object-"}).EachPage(func(page pagination.Page) (bool, error) {
+	err = objects.List(client, cName, &objects.ListOpts{Full: false, Prefix: "test-object-"}).EachPage(func(page pagination.Page) (bool, error) {
 		names, err := objects.ExtractNames(page)
 		if err != nil {
 			return false, err
@@ -84,7 +84,7 @@
 	}
 
 	ois := make([]objects.Object, 0, len(oNames))
-	err = objects.List(client, cName, objects.ListOpts{Full: true, Prefix: "test-object-"}).EachPage(func(page pagination.Page) (bool, error) {
+	err = objects.List(client, cName, &objects.ListOpts{Full: true, Prefix: "test-object-"}).EachPage(func(page pagination.Page) (bool, error) {
 		info, err := objects.ExtractInfo(page)
 		if err != nil {
 			return false, nil
@@ -104,20 +104,20 @@
 	}
 
 	// Copy the contents of one object to another.
-	err = objects.Copy(client, cName, oNames[0], objects.CopyOpts{Destination: cName + "/" + oNames[1]})
+	err = objects.Copy(client, cName, oNames[0], &objects.CopyOpts{Destination: cName + "/" + oNames[1]})
 	if err != nil {
 		t.Error(err)
 		return
 	}
 
 	// Download one of the objects that was created above.
-	o1Content, err := objects.Download(client, cName, oNames[0], objects.DownloadOpts{}).ExtractContent()
+	o1Content, err := objects.Download(client, cName, oNames[0], nil).ExtractContent()
 	if err != nil {
 		t.Error(err)
 		return
 	}
 	// Download the another object that was create above.
-	o2Content, err := objects.Download(client, cName, oNames[1], objects.DownloadOpts{}).ExtractContent()
+	o2Content, err := objects.Download(client, cName, oNames[1], nil).ExtractContent()
 	if err != nil {
 		t.Error(err)
 		return
@@ -129,7 +129,7 @@
 	}
 
 	// Update an object's metadata.
-	err = objects.Update(client, cName, oNames[0], objects.UpdateOpts{Metadata: metadata})
+	err = objects.Update(client, cName, oNames[0], &objects.UpdateOpts{Metadata: metadata})
 	if err != nil {
 		t.Error(err)
 		return
@@ -140,7 +140,7 @@
 		for k := range metadata {
 			tempMap[k] = ""
 		}
-		err = objects.Update(client, cName, oNames[0], objects.UpdateOpts{Metadata: tempMap})
+		err = objects.Update(client, cName, oNames[0], &objects.UpdateOpts{Metadata: tempMap})
 		if err != nil {
 			t.Error(err)
 			return
@@ -148,7 +148,7 @@
 	}()
 
 	// Retrieve an object's metadata.
-	om, err := objects.Get(client, cName, oNames[0], objects.GetOpts{}).ExtractMetadata()
+	om, err := objects.Get(client, cName, oNames[0], nil).ExtractMetadata()
 	if err != nil {
 		t.Error(err)
 		return