change ExtractVolumeType to a method on GetResult
diff --git a/acceptance/openstack/blockStorage/v1/volumeTypes_test.go b/acceptance/openstack/blockStorage/v1/volumeTypes_test.go
index ad6526a..0317768 100644
--- a/acceptance/openstack/blockStorage/v1/volumeTypes_test.go
+++ b/acceptance/openstack/blockStorage/v1/volumeTypes_test.go
@@ -3,7 +3,6 @@
 package v1
 
 import (
-	"strconv"
 	"testing"
 	"time"
 
@@ -11,62 +10,49 @@
 	"github.com/rackspace/gophercloud/pagination"
 )
 
-var numVolTypes = 1
-
 func TestVolumeTypes(t *testing.T) {
 	client, err := newClient()
 	if err != nil {
 		t.Fatalf("Failed to create Block Storage v1 client: %v", err)
 	}
 
-	var cvt *volumeTypes.VolumeType
-	for i := 0; i < numVolTypes; i++ {
-		cvt, err = volumeTypes.Create(client, volumeTypes.CreateOpts{
-			ExtraSpecs: map[string]interface{}{
-				"capabilities": "gpu",
-				"priority":     3,
-			},
-			Name: "gophercloud-test-volumeType-" + strconv.Itoa(i),
-		})
+	vt, err := volumeTypes.Create(client, volumeTypes.CreateOpts{
+		ExtraSpecs: map[string]interface{}{
+			"capabilities": "gpu",
+			"priority":     3,
+		},
+		Name: "gophercloud-test-volumeType",
+	})
+	if err != nil {
+		t.Error(err)
+		return
+	}
+	defer func() {
+		time.Sleep(10000 * time.Millisecond)
+		err = volumeTypes.Delete(client, vt.ID)
 		if err != nil {
 			t.Error(err)
 			return
 		}
-		defer func() {
-			time.Sleep(10000 * time.Millisecond)
-			err = volumeTypes.Delete(client, cvt.ID)
-			if err != nil {
-				t.Error(err)
-				return
-			}
-		}()
-		t.Logf("Created volume type: %+v\n", cvt)
-	}
+	}()
+	t.Logf("Created volume type: %+v\n", vt)
 
-	gr, err := volumeTypes.Get(client, cvt.ID)
+	vt, err = volumeTypes.Get(client, vt.ID).ExtractVolumeType()
 	if err != nil {
 		t.Error(err)
 		return
 	}
-	v, err := volumeTypes.ExtractVolumeType(gr)
-	if err != nil {
-		t.Error(err)
-		return
-	}
-	t.Logf("Got volume type: %+v\n", v)
+	t.Logf("Got volume type: %+v\n", vt)
 
-	pager := volumeTypes.List(client, volumeTypes.ListOpts{})
-	if err != nil {
-		t.Error(err)
-		return
-	}
-	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = volumeTypes.List(client, volumeTypes.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
 		volTypes, err := volumeTypes.ExtractVolumeTypes(page)
-		if len(volTypes) != numVolTypes {
-			t.Errorf("Expected %d volume types, got %d", numVolTypes, len(volTypes))
+		if len(volTypes) != 1 {
+			t.Errorf("Expected 1 volume type, got %d", len(volTypes))
 		}
 		t.Logf("Listing volume types: %+v\n", volTypes)
 		return true, err
 	})
-
+	if err != nil {
+		t.Errorf("Error trying to list volume types: %v", err)
+	}
 }
diff --git a/openstack/blockStorage/v1/volumeTypes/requests.go b/openstack/blockStorage/v1/volumeTypes/requests.go
index 89ee2c5..3adcb2d 100644
--- a/openstack/blockStorage/v1/volumeTypes/requests.go
+++ b/openstack/blockStorage/v1/volumeTypes/requests.go
@@ -57,13 +57,13 @@
 	return err
 }
 
-func Get(client *gophercloud.ServiceClient, id string) (GetResult, error) {
+func Get(client *gophercloud.ServiceClient, id string) GetResult {
 	var gr GetResult
-	_, err := perigee.Request("GET", volumeTypeURL(client, id), perigee.Options{
-		Results:     &gr,
+	_, gr.Err = perigee.Request("GET", volumeTypeURL(client, id), perigee.Options{
+		Results:     &gr.Resp,
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 	})
-	return gr, err
+	return gr
 }
 
 func List(client *gophercloud.ServiceClient, opts ListOpts) pagination.Pager {
diff --git a/openstack/blockStorage/v1/volumeTypes/results.go b/openstack/blockStorage/v1/volumeTypes/results.go
index 2207eec..1d97a49 100644
--- a/openstack/blockStorage/v1/volumeTypes/results.go
+++ b/openstack/blockStorage/v1/volumeTypes/results.go
@@ -3,9 +3,9 @@
 import (
 	"fmt"
 
-	"github.com/rackspace/gophercloud/pagination"
-
 	"github.com/mitchellh/mapstructure"
+	"github.com/rackspace/gophercloud"
+	"github.com/rackspace/gophercloud/pagination"
 )
 
 type VolumeType struct {
@@ -42,9 +42,14 @@
 	return response.VolumeTypes, err
 }
 
-type GetResult map[string]interface{}
+type GetResult struct {
+	gophercloud.CommonResult
+}
 
-func ExtractVolumeType(gr GetResult) (*VolumeType, error) {
+func (gr GetResult) ExtractVolumeType() (*VolumeType, error) {
+	if gr.Err != nil {
+		return nil, gr.Err
+	}
 	var response struct {
 		VolumeType *VolumeType `mapstructure:"volume_type"`
 	}