diff --git a/openstack/objectstorage/v1/accounts/testing/doc.go b/openstack/objectstorage/v1/accounts/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/objectstorage/v1/accounts/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/objectstorage/v1/accounts/fixtures.go b/openstack/objectstorage/v1/accounts/testing/fixtures.go
similarity index 96%
rename from openstack/objectstorage/v1/accounts/fixtures.go
rename to openstack/objectstorage/v1/accounts/testing/fixtures.go
index 16327e8..a265199 100644
--- a/openstack/objectstorage/v1/accounts/fixtures.go
+++ b/openstack/objectstorage/v1/accounts/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package accounts
+package testing
 
 import (
 	"net/http"
diff --git a/openstack/objectstorage/v1/accounts/requests_test.go b/openstack/objectstorage/v1/accounts/testing/requests_test.go
similarity index 66%
rename from openstack/objectstorage/v1/accounts/requests_test.go
rename to openstack/objectstorage/v1/accounts/testing/requests_test.go
index 8aba591..cf3fe05 100644
--- a/openstack/objectstorage/v1/accounts/requests_test.go
+++ b/openstack/objectstorage/v1/accounts/testing/requests_test.go
@@ -1,8 +1,9 @@
-package accounts
+package testing
 
 import (
 	"testing"
 
+	"github.com/gophercloud/gophercloud/openstack/objectstorage/v1/accounts"
 	th "github.com/gophercloud/gophercloud/testhelper"
 	fake "github.com/gophercloud/gophercloud/testhelper/client"
 )
@@ -12,8 +13,8 @@
 	defer th.TeardownHTTP()
 	HandleUpdateAccountSuccessfully(t)
 
-	options := &UpdateOpts{Metadata: map[string]string{"gophercloud-test": "accounts"}}
-	_, err := Update(fake.ServiceClient(), options).Extract()
+	options := &accounts.UpdateOpts{Metadata: map[string]string{"gophercloud-test": "accounts"}}
+	_, err := accounts.Update(fake.ServiceClient(), options).Extract()
 	th.AssertNoErr(t, err)
 }
 
@@ -23,7 +24,7 @@
 	HandleGetAccountSuccessfully(t)
 
 	expectedMetadata := map[string]string{"Subject": "books"}
-	res := Get(fake.ServiceClient(), &GetOpts{})
+	res := accounts.Get(fake.ServiceClient(), &accounts.GetOpts{})
 	th.AssertNoErr(t, res.Err)
 	actualMetadata, _ := res.ExtractMetadata()
 	th.CheckDeepEquals(t, expectedMetadata, actualMetadata)
diff --git a/openstack/objectstorage/v1/containers/testing/doc.go b/openstack/objectstorage/v1/containers/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/objectstorage/v1/containers/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/objectstorage/v1/containers/fixtures.go b/openstack/objectstorage/v1/containers/testing/fixtures.go
similarity index 96%
rename from openstack/objectstorage/v1/containers/fixtures.go
rename to openstack/objectstorage/v1/containers/testing/fixtures.go
index fde8815..fe579d8 100644
--- a/openstack/objectstorage/v1/containers/fixtures.go
+++ b/openstack/objectstorage/v1/containers/testing/fixtures.go
@@ -1,25 +1,24 @@
-// +build fixtures
-
-package containers
+package testing
 
 import (
 	"fmt"
 	"net/http"
 	"testing"
 
+	"github.com/gophercloud/gophercloud/openstack/objectstorage/v1/containers"
 	th "github.com/gophercloud/gophercloud/testhelper"
 	fake "github.com/gophercloud/gophercloud/testhelper/client"
 )
 
 // ExpectedListInfo is the result expected from a call to `List` when full
 // info is requested.
-var ExpectedListInfo = []Container{
-	Container{
+var ExpectedListInfo = []containers.Container{
+	{
 		Count: 0,
 		Bytes: 0,
 		Name:  "janeausten",
 	},
-	Container{
+	{
 		Count: 1,
 		Bytes: 14,
 		Name:  "marktwain",
diff --git a/openstack/objectstorage/v1/containers/requests_test.go b/openstack/objectstorage/v1/containers/testing/requests_test.go
similarity index 63%
rename from openstack/objectstorage/v1/containers/requests_test.go
rename to openstack/objectstorage/v1/containers/testing/requests_test.go
index 5066ab2..0d32882 100644
--- a/openstack/objectstorage/v1/containers/requests_test.go
+++ b/openstack/objectstorage/v1/containers/testing/requests_test.go
@@ -1,8 +1,9 @@
-package containers
+package testing
 
 import (
 	"testing"
 
+	"github.com/gophercloud/gophercloud/openstack/objectstorage/v1/containers"
 	"github.com/gophercloud/gophercloud/pagination"
 	th "github.com/gophercloud/gophercloud/testhelper"
 	fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -16,9 +17,9 @@
 	HandleListContainerInfoSuccessfully(t)
 
 	count := 0
-	err := List(fake.ServiceClient(), &ListOpts{Full: true}).EachPage(func(page pagination.Page) (bool, error) {
+	err := containers.List(fake.ServiceClient(), &containers.ListOpts{Full: true}).EachPage(func(page pagination.Page) (bool, error) {
 		count++
-		actual, err := ExtractInfo(page)
+		actual, err := containers.ExtractInfo(page)
 		th.AssertNoErr(t, err)
 
 		th.CheckDeepEquals(t, ExpectedListInfo, actual)
@@ -34,9 +35,9 @@
 	defer th.TeardownHTTP()
 	HandleListContainerInfoSuccessfully(t)
 
-	allPages, err := List(fake.ServiceClient(), &ListOpts{Full: true}).AllPages()
+	allPages, err := containers.List(fake.ServiceClient(), &containers.ListOpts{Full: true}).AllPages()
 	th.AssertNoErr(t, err)
-	actual, err := ExtractInfo(allPages)
+	actual, err := containers.ExtractInfo(allPages)
 	th.AssertNoErr(t, err)
 	th.CheckDeepEquals(t, ExpectedListInfo, actual)
 }
@@ -47,9 +48,9 @@
 	HandleListContainerNamesSuccessfully(t)
 
 	count := 0
-	err := List(fake.ServiceClient(), &ListOpts{Full: false}).EachPage(func(page pagination.Page) (bool, error) {
+	err := containers.List(fake.ServiceClient(), &containers.ListOpts{Full: false}).EachPage(func(page pagination.Page) (bool, error) {
 		count++
-		actual, err := ExtractNames(page)
+		actual, err := containers.ExtractNames(page)
 		if err != nil {
 			t.Errorf("Failed to extract container names: %v", err)
 			return false, err
@@ -68,9 +69,9 @@
 	defer th.TeardownHTTP()
 	HandleListContainerNamesSuccessfully(t)
 
-	allPages, err := List(fake.ServiceClient(), &ListOpts{Full: false}).AllPages()
+	allPages, err := containers.List(fake.ServiceClient(), &containers.ListOpts{Full: false}).AllPages()
 	th.AssertNoErr(t, err)
-	actual, err := ExtractNames(allPages)
+	actual, err := containers.ExtractNames(allPages)
 	th.AssertNoErr(t, err)
 	th.CheckDeepEquals(t, ExpectedListNames, actual)
 }
@@ -80,8 +81,8 @@
 	defer th.TeardownHTTP()
 	HandleCreateContainerSuccessfully(t)
 
-	options := CreateOpts{ContentType: "application/json", Metadata: map[string]string{"foo": "bar"}}
-	res := Create(fake.ServiceClient(), "testContainer", options)
+	options := containers.CreateOpts{ContentType: "application/json", Metadata: map[string]string{"foo": "bar"}}
+	res := containers.Create(fake.ServiceClient(), "testContainer", options)
 	c, err := res.Extract()
 	th.CheckNoErr(t, err)
 	th.CheckEquals(t, "bar", res.Header["X-Container-Meta-Foo"][0])
@@ -93,7 +94,7 @@
 	defer th.TeardownHTTP()
 	HandleDeleteContainerSuccessfully(t)
 
-	res := Delete(fake.ServiceClient(), "testContainer")
+	res := containers.Delete(fake.ServiceClient(), "testContainer")
 	th.CheckNoErr(t, res.Err)
 }
 
@@ -102,8 +103,8 @@
 	defer th.TeardownHTTP()
 	HandleUpdateContainerSuccessfully(t)
 
-	options := &UpdateOpts{Metadata: map[string]string{"foo": "bar"}}
-	res := Update(fake.ServiceClient(), "testContainer", options)
+	options := &containers.UpdateOpts{Metadata: map[string]string{"foo": "bar"}}
+	res := containers.Update(fake.ServiceClient(), "testContainer", options)
 	th.CheckNoErr(t, res.Err)
 }
 
@@ -112,6 +113,6 @@
 	defer th.TeardownHTTP()
 	HandleGetContainerSuccessfully(t)
 
-	_, err := Get(fake.ServiceClient(), "testContainer").ExtractMetadata()
+	_, err := containers.Get(fake.ServiceClient(), "testContainer").ExtractMetadata()
 	th.CheckNoErr(t, err)
 }
diff --git a/openstack/objectstorage/v1/objects/testing/doc.go b/openstack/objectstorage/v1/objects/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/objectstorage/v1/objects/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/objectstorage/v1/objects/fixtures.go b/openstack/objectstorage/v1/objects/testing/fixtures.go
similarity index 97%
rename from openstack/objectstorage/v1/objects/fixtures.go
rename to openstack/objectstorage/v1/objects/testing/fixtures.go
index 999b305..5077c3f 100644
--- a/openstack/objectstorage/v1/objects/fixtures.go
+++ b/openstack/objectstorage/v1/objects/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package objects
+package testing
 
 import (
 	"crypto/md5"
@@ -9,6 +7,7 @@
 	"net/http"
 	"testing"
 
+	"github.com/gophercloud/gophercloud/openstack/objectstorage/v1/objects"
 	th "github.com/gophercloud/gophercloud/testhelper"
 	fake "github.com/gophercloud/gophercloud/testhelper/client"
 )
@@ -27,15 +26,15 @@
 
 // ExpectedListInfo is the result expected from a call to `List` when full
 // info is requested.
-var ExpectedListInfo = []Object{
-	Object{
+var ExpectedListInfo = []objects.Object{
+	{
 		Hash:         "451e372e48e0f6b1114fa0724aa79fa1",
 		LastModified: "2009-11-10 23:00:00 +0000 UTC",
 		Bytes:        14,
 		Name:         "goodbye",
 		ContentType:  "application/octet-stream",
 	},
-	Object{
+	{
 		Hash:         "451e372e48e0f6b1114fa0724aa79fa1",
 		LastModified: "2009-11-10 23:00:00 +0000 UTC",
 		Bytes:        14,
diff --git a/openstack/objectstorage/v1/objects/requests_test.go b/openstack/objectstorage/v1/objects/testing/requests_test.go
similarity index 68%
rename from openstack/objectstorage/v1/objects/requests_test.go
rename to openstack/objectstorage/v1/objects/testing/requests_test.go
index e612319..332028e 100644
--- a/openstack/objectstorage/v1/objects/requests_test.go
+++ b/openstack/objectstorage/v1/objects/testing/requests_test.go
@@ -1,4 +1,4 @@
-package objects
+package testing
 
 import (
 	"bytes"
@@ -6,6 +6,7 @@
 	"strings"
 	"testing"
 
+	"github.com/gophercloud/gophercloud/openstack/objectstorage/v1/objects"
 	"github.com/gophercloud/gophercloud/pagination"
 	th "github.com/gophercloud/gophercloud/testhelper"
 	fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -16,7 +17,7 @@
 	defer th.TeardownHTTP()
 	HandleDownloadObjectSuccessfully(t)
 
-	response := Download(fake.ServiceClient(), "testContainer", "testObject", nil)
+	response := objects.Download(fake.ServiceClient(), "testContainer", "testObject", nil)
 	defer response.Body.Close()
 
 	// Check reader
@@ -30,7 +31,7 @@
 	defer th.TeardownHTTP()
 	HandleDownloadObjectSuccessfully(t)
 
-	response := Download(fake.ServiceClient(), "testContainer", "testObject", nil)
+	response := objects.Download(fake.ServiceClient(), "testContainer", "testObject", nil)
 
 	// Check []byte extraction
 	bytes, err := response.ExtractContent()
@@ -44,10 +45,10 @@
 	HandleListObjectsInfoSuccessfully(t)
 
 	count := 0
-	options := &ListOpts{Full: true}
-	err := List(fake.ServiceClient(), "testContainer", options).EachPage(func(page pagination.Page) (bool, error) {
+	options := &objects.ListOpts{Full: true}
+	err := objects.List(fake.ServiceClient(), "testContainer", options).EachPage(func(page pagination.Page) (bool, error) {
 		count++
-		actual, err := ExtractInfo(page)
+		actual, err := objects.ExtractInfo(page)
 		th.AssertNoErr(t, err)
 
 		th.CheckDeepEquals(t, ExpectedListInfo, actual)
@@ -64,10 +65,10 @@
 	HandleListObjectNamesSuccessfully(t)
 
 	count := 0
-	options := &ListOpts{Full: false}
-	err := List(fake.ServiceClient(), "testContainer", options).EachPage(func(page pagination.Page) (bool, error) {
+	options := &objects.ListOpts{Full: false}
+	err := objects.List(fake.ServiceClient(), "testContainer", options).EachPage(func(page pagination.Page) (bool, error) {
 		count++
-		actual, err := ExtractNames(page)
+		actual, err := objects.ExtractNames(page)
 		if err != nil {
 			t.Errorf("Failed to extract container names: %v", err)
 			return false, err
@@ -89,8 +90,8 @@
 
 	HandleCreateTextObjectSuccessfully(t, content)
 
-	options := &CreateOpts{ContentType: "text/plain", Content: strings.NewReader(content)}
-	res := Create(fake.ServiceClient(), "testContainer", "testObject", options)
+	options := &objects.CreateOpts{ContentType: "text/plain", Content: strings.NewReader(content)}
+	res := objects.Create(fake.ServiceClient(), "testContainer", "testObject", options)
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -102,7 +103,7 @@
 
 	HandleCreateTypelessObjectSuccessfully(t, content)
 
-	res := Create(fake.ServiceClient(), "testContainer", "testObject", &CreateOpts{Content: strings.NewReader(content)})
+	res := objects.Create(fake.ServiceClient(), "testContainer", "testObject", &objects.CreateOpts{Content: strings.NewReader(content)})
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -129,8 +130,8 @@
 	defer th.TeardownHTTP()
 	HandleCopyObjectSuccessfully(t)
 
-	options := &CopyOpts{Destination: "/newTestContainer/newTestObject"}
-	res := Copy(fake.ServiceClient(), "testContainer", "testObject", options)
+	options := &objects.CopyOpts{Destination: "/newTestContainer/newTestObject"}
+	res := objects.Copy(fake.ServiceClient(), "testContainer", "testObject", options)
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -139,7 +140,7 @@
 	defer th.TeardownHTTP()
 	HandleDeleteObjectSuccessfully(t)
 
-	res := Delete(fake.ServiceClient(), "testContainer", "testObject", nil)
+	res := objects.Delete(fake.ServiceClient(), "testContainer", "testObject", nil)
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -148,8 +149,8 @@
 	defer th.TeardownHTTP()
 	HandleUpdateObjectSuccessfully(t)
 
-	options := &UpdateOpts{Metadata: map[string]string{"Gophercloud-Test": "objects"}}
-	res := Update(fake.ServiceClient(), "testContainer", "testObject", options)
+	options := &objects.UpdateOpts{Metadata: map[string]string{"Gophercloud-Test": "objects"}}
+	res := objects.Update(fake.ServiceClient(), "testContainer", "testObject", options)
 	th.AssertNoErr(t, res.Err)
 }
 
@@ -159,7 +160,7 @@
 	HandleGetObjectSuccessfully(t)
 
 	expected := map[string]string{"Gophercloud-Test": "objects"}
-	actual, err := Get(fake.ServiceClient(), "testContainer", "testObject", nil).ExtractMetadata()
+	actual, err := objects.Get(fake.ServiceClient(), "testContainer", "testObject", nil).ExtractMetadata()
 	th.AssertNoErr(t, err)
 	th.CheckDeepEquals(t, expected, actual)
 }
