diff --git a/README.asciidoc b/README.asciidoc
index 53cebdf..505e357 100644
--- a/README.asciidoc
+++ b/README.asciidoc
@@ -39,7 +39,7 @@
 ```
 go test -v -tags acceptance github.com/rackspace/gophercloud
 ```
-*Note: Running the acceptance tests briefly creates (and deletes) real resources. You may incur costsfrom your provider by running these.*
+*Note: Running the acceptance tests briefly creates (and deletes) real resources. You may incur costs from your provider by running these.*
 
 To run specific tests, use a regular expression with the `run` flag. For example, to just run the authentication test (named TestAuthentication), run
 ```
diff --git a/acceptance/openstack/compute/compute_test.go b/acceptance/openstack/compute/compute_test.go
index 7473f13..2310858 100644
--- a/acceptance/openstack/compute/compute_test.go
+++ b/acceptance/openstack/compute/compute_test.go
@@ -4,12 +4,13 @@
 
 import (
 	"fmt"
-	"github.com/rackspace/gophercloud/openstack/compute/flavors"
-	"github.com/rackspace/gophercloud/openstack/compute/images"
-	"github.com/rackspace/gophercloud/openstack/compute/servers"
 	"os"
 	"testing"
+
 	"github.com/rackspace/gophercloud/acceptance/tools"
+	"github.com/rackspace/gophercloud/openstack/compute/v2/flavors"
+	"github.com/rackspace/gophercloud/openstack/compute/v2/images"
+	"github.com/rackspace/gophercloud/openstack/compute/v2/servers"
 )
 
 var service = "compute"
@@ -226,7 +227,7 @@
 		t.Fatal(err)
 	}
 
-	defer func(){
+	defer func() {
 		servers.Delete(ts.Client, ts.CreatedServer.Id)
 	}()
 
@@ -254,7 +255,7 @@
 		t.Fatal(err)
 	}
 
-	defer func(){
+	defer func() {
 		servers.Delete(ts.Client, ts.CreatedServer.Id)
 	}()
 
@@ -287,7 +288,7 @@
 		t.Fatal(err)
 	}
 
-	defer func(){
+	defer func() {
 		servers.Delete(ts.Client, ts.CreatedServer.Id)
 	}()
 
@@ -304,31 +305,31 @@
 
 func TestActionResizeConfirm(t *testing.T) {
 	t.Parallel()
-	
+
 	ts, err := tools.SetupForCRUD()
 	if err != nil {
 		t.Fatal(err)
 	}
-	
+
 	err = tools.CreateServer(ts)
 	if err != nil {
 		t.Fatal(err)
 	}
-	
-	defer func(){
+
+	defer func() {
 		servers.Delete(ts.Client, ts.CreatedServer.Id)
 	}()
-	
+
 	err = tools.WaitForStatus(ts, "ACTIVE")
 	if err != nil {
 		t.Fatal(err)
 	}
-	
+
 	err = tools.ResizeServer(ts)
 	if err != nil {
 		t.Fatal(err)
 	}
-	
+
 	err = tools.ConfirmResize(ts)
 	if err != nil {
 		t.Fatal(err)
@@ -337,31 +338,31 @@
 
 func TestActionResizeRevert(t *testing.T) {
 	t.Parallel()
-	
+
 	ts, err := tools.SetupForCRUD()
 	if err != nil {
 		t.Fatal(err)
 	}
-	
+
 	err = tools.CreateServer(ts)
 	if err != nil {
 		t.Fatal(err)
 	}
-	
-	defer func(){
+
+	defer func() {
 		servers.Delete(ts.Client, ts.CreatedServer.Id)
 	}()
-	
+
 	err = tools.WaitForStatus(ts, "ACTIVE")
 	if err != nil {
 		t.Fatal(err)
 	}
-	
+
 	err = tools.ResizeServer(ts)
 	if err != nil {
 		t.Fatal(err)
 	}
-	
+
 	err = tools.RevertResize(ts)
 	if err != nil {
 		t.Fatal(err)
diff --git a/acceptance/openstack/compute/tools_test.go b/acceptance/openstack/compute/tools_test.go
index 5140caf..100ea5e 100644
--- a/acceptance/openstack/compute/tools_test.go
+++ b/acceptance/openstack/compute/tools_test.go
@@ -5,12 +5,13 @@
 import (
 	"crypto/rand"
 	"fmt"
-	"github.com/rackspace/gophercloud/openstack/compute/servers"
-	identity "github.com/rackspace/gophercloud/openstack/identity/v2"
-	"github.com/rackspace/gophercloud/openstack/utils"
 	"os"
 	"text/tabwriter"
 	"time"
+
+	"github.com/rackspace/gophercloud/openstack/compute/v2/servers"
+	identity "github.com/rackspace/gophercloud/openstack/identity/v2"
+	"github.com/rackspace/gophercloud/openstack/utils"
 )
 
 var errTimeout = fmt.Errorf("Timeout.")
diff --git a/openstack/compute/flavors/client.go b/openstack/compute/v2/flavors/client.go
similarity index 100%
rename from openstack/compute/flavors/client.go
rename to openstack/compute/v2/flavors/client.go
diff --git a/openstack/compute/flavors/flavors.go b/openstack/compute/v2/flavors/flavors.go
similarity index 100%
rename from openstack/compute/flavors/flavors.go
rename to openstack/compute/v2/flavors/flavors.go
diff --git a/openstack/compute/flavors/requests.go b/openstack/compute/v2/flavors/requests.go
similarity index 100%
rename from openstack/compute/flavors/requests.go
rename to openstack/compute/v2/flavors/requests.go
diff --git a/openstack/compute/images/client.go b/openstack/compute/v2/images/client.go
similarity index 100%
rename from openstack/compute/images/client.go
rename to openstack/compute/v2/images/client.go
diff --git a/openstack/compute/images/images.go b/openstack/compute/v2/images/images.go
similarity index 100%
rename from openstack/compute/images/images.go
rename to openstack/compute/v2/images/images.go
diff --git a/openstack/compute/images/images_test.go b/openstack/compute/v2/images/images_test.go
similarity index 100%
rename from openstack/compute/images/images_test.go
rename to openstack/compute/v2/images/images_test.go
diff --git a/openstack/compute/images/requests.go b/openstack/compute/v2/images/requests.go
similarity index 100%
rename from openstack/compute/images/requests.go
rename to openstack/compute/v2/images/requests.go
diff --git a/openstack/compute/servers/client.go b/openstack/compute/v2/servers/client.go
similarity index 100%
rename from openstack/compute/servers/client.go
rename to openstack/compute/v2/servers/client.go
diff --git a/openstack/compute/servers/doc.go b/openstack/compute/v2/servers/doc.go
similarity index 100%
rename from openstack/compute/servers/doc.go
rename to openstack/compute/v2/servers/doc.go
diff --git a/openstack/compute/servers/requests.go b/openstack/compute/v2/servers/requests.go
similarity index 100%
rename from openstack/compute/servers/requests.go
rename to openstack/compute/v2/servers/requests.go
diff --git a/openstack/compute/servers/servers.go b/openstack/compute/v2/servers/servers.go
similarity index 100%
rename from openstack/compute/servers/servers.go
rename to openstack/compute/v2/servers/servers.go
diff --git a/openstack/compute/servers/servers_test.go b/openstack/compute/v2/servers/servers_test.go
similarity index 100%
rename from openstack/compute/servers/servers_test.go
rename to openstack/compute/v2/servers/servers_test.go
