diff --git a/acceptance/openstack/storage/v1/accounts_test.go b/acceptance/openstack/objectStorage/v1/accounts_test.go
similarity index 93%
rename from acceptance/openstack/storage/v1/accounts_test.go
rename to acceptance/openstack/objectStorage/v1/accounts_test.go
index 64cd165..7a3b046 100644
--- a/acceptance/openstack/storage/v1/accounts_test.go
+++ b/acceptance/openstack/objectStorage/v1/accounts_test.go
@@ -6,7 +6,7 @@
 	"strings"
 	"testing"
 
-	"github.com/rackspace/gophercloud/openstack/storage/v1/accounts"
+	"github.com/rackspace/gophercloud/openstack/objectStorage/v1/accounts"
 )
 
 func TestAccounts(t *testing.T) {
diff --git a/acceptance/openstack/storage/v1/common.go b/acceptance/openstack/objectStorage/v1/common.go
similarity index 100%
rename from acceptance/openstack/storage/v1/common.go
rename to acceptance/openstack/objectStorage/v1/common.go
diff --git a/acceptance/openstack/storage/v1/containers_test.go b/acceptance/openstack/objectStorage/v1/containers_test.go
similarity index 95%
rename from acceptance/openstack/storage/v1/containers_test.go
rename to acceptance/openstack/objectStorage/v1/containers_test.go
index 3cc367b..1c6393f 100644
--- a/acceptance/openstack/storage/v1/containers_test.go
+++ b/acceptance/openstack/objectStorage/v1/containers_test.go
@@ -7,7 +7,7 @@
 	"testing"
 
 	"github.com/rackspace/gophercloud/acceptance/tools"
-	"github.com/rackspace/gophercloud/openstack/storage/v1/containers"
+	"github.com/rackspace/gophercloud/openstack/objectStorage/v1/containers"
 	"github.com/rackspace/gophercloud/pagination"
 )
 
@@ -58,7 +58,7 @@
 		}
 		for _, n := range containerList {
 			t.Logf("Container: Name [%s] Count [%d] Bytes [%d]",
-				n["name"], int(n["count"].(float64)), int(n["bytes"].(float64)))
+				n.Name, n.Count, n.Bytes)
 		}
 
 		return true, nil
diff --git a/acceptance/openstack/storage/v1/objects_test.go b/acceptance/openstack/objectStorage/v1/objects_test.go
similarity index 92%
rename from acceptance/openstack/storage/v1/objects_test.go
rename to acceptance/openstack/objectStorage/v1/objects_test.go
index 239b4d5..5eae02e 100644
--- a/acceptance/openstack/storage/v1/objects_test.go
+++ b/acceptance/openstack/objectStorage/v1/objects_test.go
@@ -8,8 +8,8 @@
 	"testing"
 
 	"github.com/rackspace/gophercloud/acceptance/tools"
-	"github.com/rackspace/gophercloud/openstack/storage/v1/containers"
-	"github.com/rackspace/gophercloud/openstack/storage/v1/objects"
+	"github.com/rackspace/gophercloud/openstack/objectStorage/v1/containers"
+	"github.com/rackspace/gophercloud/openstack/objectStorage/v1/objects"
 	"github.com/rackspace/gophercloud/pagination"
 )
 
@@ -64,7 +64,10 @@
 		}
 	}()
 
-	pager := objects.List(client, cName, objects.ListOpts{Full: false})
+	pager := objects.List(client, cName, objects.ListOpts{Full: false, Prefix: "test-object-"})
+	if pager.Err != nil {
+		t.Fatalf("Pager error: %v", pager.Err)
+	}
 	ons := make([]string, 0, len(oNames))
 	err = pager.EachPage(func(page pagination.Page) (bool, error) {
 		names, err := objects.ExtractNames(page)
@@ -84,7 +87,10 @@
 		return
 	}
 
-	pager = objects.List(client, cName, objects.ListOpts{Full: true})
+	pager = objects.List(client, cName, objects.ListOpts{Full: true, Prefix: "test-object-"})
+	if pager.Err != nil {
+		t.Fatalf("Pager error: %v", pager.Err)
+	}
 	ois := make([]objects.Object, 0, len(oNames))
 	err = pager.EachPage(func(page pagination.Page) (bool, error) {
 		info, err := objects.ExtractInfo(page)
diff --git a/openstack/storage/v1/accounts/accounts.go b/openstack/objectStorage/v1/accounts/accounts.go
similarity index 100%
rename from openstack/storage/v1/accounts/accounts.go
rename to openstack/objectStorage/v1/accounts/accounts.go
diff --git a/openstack/storage/v1/accounts/accounts_test.go b/openstack/objectStorage/v1/accounts/accounts_test.go
similarity index 100%
rename from openstack/storage/v1/accounts/accounts_test.go
rename to openstack/objectStorage/v1/accounts/accounts_test.go
diff --git a/openstack/storage/v1/accounts/doc.go b/openstack/objectStorage/v1/accounts/doc.go
similarity index 100%
rename from openstack/storage/v1/accounts/doc.go
rename to openstack/objectStorage/v1/accounts/doc.go
diff --git a/openstack/storage/v1/accounts/requests.go b/openstack/objectStorage/v1/accounts/requests.go
similarity index 100%
rename from openstack/storage/v1/accounts/requests.go
rename to openstack/objectStorage/v1/accounts/requests.go
diff --git a/openstack/storage/v1/accounts/requests_test.go b/openstack/objectStorage/v1/accounts/requests_test.go
similarity index 100%
rename from openstack/storage/v1/accounts/requests_test.go
rename to openstack/objectStorage/v1/accounts/requests_test.go
diff --git a/openstack/storage/v1/accounts/urls.go b/openstack/objectStorage/v1/accounts/urls.go
similarity index 100%
rename from openstack/storage/v1/accounts/urls.go
rename to openstack/objectStorage/v1/accounts/urls.go
diff --git a/openstack/storage/v1/accounts/urls_test.go b/openstack/objectStorage/v1/accounts/urls_test.go
similarity index 100%
rename from openstack/storage/v1/accounts/urls_test.go
rename to openstack/objectStorage/v1/accounts/urls_test.go
diff --git a/openstack/storage/v1/containers/doc.go b/openstack/objectStorage/v1/containers/doc.go
similarity index 100%
rename from openstack/storage/v1/containers/doc.go
rename to openstack/objectStorage/v1/containers/doc.go
diff --git a/openstack/storage/v1/containers/requests.go b/openstack/objectStorage/v1/containers/requests.go
similarity index 97%
rename from openstack/storage/v1/containers/requests.go
rename to openstack/objectStorage/v1/containers/requests.go
index 35bc1af..013c6ff 100644
--- a/openstack/storage/v1/containers/requests.go
+++ b/openstack/objectStorage/v1/containers/requests.go
@@ -22,14 +22,13 @@
 // response to the ExtractInfo or ExtractNames function, respectively.
 func List(c *gophercloud.ServiceClient, opts ListOpts) pagination.Pager {
 	var headers map[string]string
-
 	query, err := gophercloud.BuildQueryString(opts)
 	if err != nil {
 		return pagination.Pager{Err: err}
 	}
 
 	if !opts.Full {
-		headers = map[string]string{"Accept": "text/plain"}
+		headers = map[string]string{"Accept": "text/plain", "Content-Type": "text/plain"}
 	}
 
 	createPage := func(r pagination.LastHTTPResponse) pagination.Page {
diff --git a/openstack/storage/v1/containers/requests_test.go b/openstack/objectStorage/v1/containers/requests_test.go
similarity index 92%
rename from openstack/storage/v1/containers/requests_test.go
rename to openstack/objectStorage/v1/containers/requests_test.go
index 93747be..1c9ee11 100644
--- a/openstack/storage/v1/containers/requests_test.go
+++ b/openstack/objectStorage/v1/containers/requests_test.go
@@ -34,6 +34,7 @@
 
 		w.Header().Add("Content-Type", "application/json")
 		r.ParseForm()
+		fmt.Printf("r: %+v\n", r)
 		marker := r.Form.Get("marker")
 		switch marker {
 		case "":
@@ -49,6 +50,8 @@
 					"name": "marktwain"
 				}
 			]`)
+		case "marktwain":
+			fmt.Fprintf(w, `[]`)
 		default:
 			t.Fatalf("Unexpected marker: [%s]", marker)
 		}
@@ -91,8 +94,16 @@
 		testhelper.TestHeader(t, r, "Accept", "text/plain")
 
 		w.Header().Set("Content-Type", "text/plain")
-		w.WriteHeader(http.StatusOK)
-		fmt.Fprintf(w, "")
+		r.ParseForm()
+		marker := r.Form.Get("marker")
+		switch marker {
+		case "":
+			fmt.Fprintf(w, "janeausten\nmarktwain\n")
+		case "marktwain":
+			fmt.Fprintf(w, ``)
+		default:
+			t.Fatalf("Unexpected marker: [%s]", marker)
+		}
 	})
 
 	client := serviceClient()
@@ -103,7 +114,7 @@
 			return false, err
 		}
 
-		expected := []string{"janeausten, marktwain"}
+		expected := []string{"janeausten", "marktwain"}
 
 		testhelper.CheckDeepEquals(t, expected, actual)
 
diff --git a/openstack/storage/v1/containers/results.go b/openstack/objectStorage/v1/containers/results.go
similarity index 93%
rename from openstack/storage/v1/containers/results.go
rename to openstack/objectStorage/v1/containers/results.go
index 283e44a..5df99ed 100644
--- a/openstack/storage/v1/containers/results.go
+++ b/openstack/objectStorage/v1/containers/results.go
@@ -10,9 +10,9 @@
 )
 
 type Container struct {
-	Bytes int
-	Count int
-	Name  string
+	Bytes int    `json:"bytes" mapstructure:"bytes"`
+	Count int    `json:"count" mapstructure:"count"`
+	Name  string `json:"name"  mapstructure:"name"`
 }
 
 type commonResult struct {
@@ -84,7 +84,7 @@
 	results := make([]Container, len(untyped))
 	for index, each := range untyped {
 		container := each.(map[string]interface{})
-		err := mapstructure.Decode(container, results[index])
+		err := mapstructure.Decode(container, &results[index])
 		if err != nil {
 			return results, err
 		}
diff --git a/openstack/storage/v1/containers/urls.go b/openstack/objectStorage/v1/containers/urls.go
similarity index 100%
rename from openstack/storage/v1/containers/urls.go
rename to openstack/objectStorage/v1/containers/urls.go
diff --git a/openstack/storage/v1/containers/urls_test.go b/openstack/objectStorage/v1/containers/urls_test.go
similarity index 100%
rename from openstack/storage/v1/containers/urls_test.go
rename to openstack/objectStorage/v1/containers/urls_test.go
diff --git a/openstack/storage/v1/objects/doc.go b/openstack/objectStorage/v1/objects/doc.go
similarity index 100%
rename from openstack/storage/v1/objects/doc.go
rename to openstack/objectStorage/v1/objects/doc.go
diff --git a/openstack/storage/v1/objects/requests.go b/openstack/objectStorage/v1/objects/requests.go
similarity index 98%
rename from openstack/storage/v1/objects/requests.go
rename to openstack/objectStorage/v1/objects/requests.go
index 363843c..1622ff7 100644
--- a/openstack/storage/v1/objects/requests.go
+++ b/openstack/objectStorage/v1/objects/requests.go
@@ -35,7 +35,7 @@
 	}
 
 	if !opts.Full {
-		headers = map[string]string{"Accept": "text/plain"}
+		headers = map[string]string{"Accept": "text/plain", "Content-Type": "text/plain"}
 	}
 
 	createPage := func(r pagination.LastHTTPResponse) pagination.Page {
diff --git a/openstack/storage/v1/objects/requests_test.go b/openstack/objectStorage/v1/objects/requests_test.go
similarity index 95%
rename from openstack/storage/v1/objects/requests_test.go
rename to openstack/objectStorage/v1/objects/requests_test.go
index 6fe4d30..0c61550 100644
--- a/openstack/storage/v1/objects/requests_test.go
+++ b/openstack/objectStorage/v1/objects/requests_test.go
@@ -5,7 +5,6 @@
 	"fmt"
 	"net/http"
 	"testing"
-	"time"
 
 	"github.com/rackspace/gophercloud"
 	"github.com/rackspace/gophercloud/pagination"
@@ -77,7 +76,7 @@
 		expected := []Object{
 			Object{
 				Hash:         "451e372e48e0f6b1114fa0724aa79fa1",
-				LastModified: time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC),
+				LastModified: "2009-11-10 23:00:00 +0000 UTC",
 				Bytes:        14,
 				Name:         "goodbye",
 				ContentType:  "application/octet-stream",
@@ -100,8 +99,16 @@
 		testhelper.TestHeader(t, r, "Accept", "text/plain")
 
 		w.Header().Add("Content-Type", "text/plain")
-		w.WriteHeader(http.StatusOK)
-		fmt.Fprintf(w, "")
+		r.ParseForm()
+		marker := r.Form.Get("marker")
+		switch marker {
+		case "":
+			fmt.Fprintf(w, "goodbye\n")
+		case "goodbye":
+			fmt.Fprintf(w, "")
+		default:
+			t.Fatalf("Unexpected marker: [%s]", marker)
+		}
 	})
 
 	client := serviceClient()
@@ -112,7 +119,7 @@
 			return false, err
 		}
 
-		expected := []string{"helloworld", "goodbye"}
+		expected := []string{"goodbye"}
 
 		testhelper.CheckDeepEquals(t, expected, actual)
 
diff --git a/openstack/storage/v1/objects/results.go b/openstack/objectStorage/v1/objects/results.go
similarity index 88%
rename from openstack/storage/v1/objects/results.go
rename to openstack/objectStorage/v1/objects/results.go
index 529bbd9..14435b9 100644
--- a/openstack/storage/v1/objects/results.go
+++ b/openstack/objectStorage/v1/objects/results.go
@@ -5,7 +5,6 @@
 	"io/ioutil"
 	"net/http"
 	"strings"
-	"time"
 
 	"github.com/mitchellh/mapstructure"
 	"github.com/rackspace/gophercloud/pagination"
@@ -13,11 +12,11 @@
 
 // Object is a structure that holds information related to a storage object.
 type Object struct {
-	Bytes        int       `json:"bytes"`
-	ContentType  string    `json:"content_type"`
-	Hash         string    `json:"hash"`
-	LastModified time.Time `json:"last_modified"`
-	Name         string    `json:"name"`
+	Bytes        int    `json:"bytes"			mapstructure:"bytes"`
+	ContentType  string `json:"content_type"	mapstructure:"content_type"`
+	Hash         string `json:"hash"			mapstructure:"hash"`
+	LastModified string `json:"last_modified"	mapstructure:"last_modified"`
+	Name         string `json:"name"			mapstructure:"name"`
 }
 
 // ListResult is a single page of objects that is returned from a call to the List function.
@@ -64,11 +63,10 @@
 	results := make([]Object, len(untyped))
 	for index, each := range untyped {
 		object := each.(map[string]interface{})
-		err := mapstructure.Decode(object, results[index])
+		err := mapstructure.Decode(object, &results[index])
 		if err != nil {
 			return results, err
 		}
-
 	}
 	return results, nil
 }
@@ -77,7 +75,6 @@
 func ExtractNames(page pagination.Page) ([]string, error) {
 	casted := page.(ObjectPage)
 	ct := casted.Header.Get("Content-Type")
-
 	switch {
 	case strings.HasPrefix(ct, "application/json"):
 		parsed, err := ExtractInfo(page)
@@ -89,6 +86,7 @@
 		for _, object := range parsed {
 			names = append(names, object.Name)
 		}
+
 		return names, nil
 	case strings.HasPrefix(ct, "text/plain"):
 		names := make([]string, 0, 50)
@@ -101,6 +99,8 @@
 		}
 
 		return names, nil
+	case strings.HasPrefix(ct, "text/html"):
+		return []string{}, nil
 	default:
 		return nil, fmt.Errorf("Cannot extract names from response with content-type: [%s]", ct)
 	}
diff --git a/openstack/storage/v1/objects/urls.go b/openstack/objectStorage/v1/objects/urls.go
similarity index 100%
rename from openstack/storage/v1/objects/urls.go
rename to openstack/objectStorage/v1/objects/urls.go
diff --git a/openstack/storage/v1/objects/urls_test.go b/openstack/objectStorage/v1/objects/urls_test.go
similarity index 100%
rename from openstack/storage/v1/objects/urls_test.go
rename to openstack/objectStorage/v1/objects/urls_test.go
