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
