diff --git a/openstack/identity/v3/client.go b/openstack/identity/v3/client.go
index 0647471..8c6e3e4 100644
--- a/openstack/identity/v3/client.go
+++ b/openstack/identity/v3/client.go
@@ -1,29 +1,30 @@
 package v3
 
 import (
+	"time"
+
 	"github.com/rackspace/gophercloud"
-	"github.com/rackspace/gophercloud/openstack/identity/v3/tokens"
 )
 
-// Client abstracts the connection information necessary to make API calls to Identity v3
-// resources.
+// Client abstracts the connection information necessary to make API calls to Identity v3 resources.
+// It exists mainly to adhere to the IdentityService interface.
 type Client gophercloud.ServiceClient
 
-var (
-	nilClient = Client{}
-)
+// Token models a token acquired from the tokens/ API resource.
+type Token struct {
+	ID        string
+	ExpiresAt time.Time
+}
 
-// NewClient attempts to authenticate to the v3 identity endpoint. Returns a populated
-// IdentityV3Client on success or an error on failure.
-func NewClient(authOptions gophercloud.AuthOptions) (*Client, error) {
-	client := Client{Options: authOptions}
-
-	result, err := tokens.Create(&client, nil)
-	if err != nil {
-		return nil, err
+// NewClient creates a new client associated with the v3 identity service of a provider.
+func NewClient(provider *gophercloud.ProviderClient) *Client {
+	return &Client{
+		ProviderClient: *provider,
+		Endpoint:       provider.IdentityEndpoint + "v3/",
 	}
+}
 
-	// Assign the token and return.
-	client.TokenID = result.TokenID()
-	return &client, nil
+// Authenticate provides the supplied credentials to an identity v3 endpoint and attempts to acquire a token.
+func (c *Client) Authenticate(authOptions gophercloud.AuthOptions) (*Token, error) {
+	return nil, nil
 }
diff --git a/openstack/identity/v3/client_test.go b/openstack/identity/v3/client_test.go
new file mode 100644
index 0000000..7c57e68
--- /dev/null
+++ b/openstack/identity/v3/client_test.go
@@ -0,0 +1,32 @@
+package v3
+
+import (
+	"fmt"
+	"net/http"
+	"testing"
+
+	"github.com/rackspace/gophercloud"
+	"github.com/rackspace/gophercloud/testhelper"
+)
+
+func TestAuthentication(t *testing.T) {
+	testhelper.SetupHTTP()
+	defer testhelper.TeardownHTTP()
+
+	testhelper.Mux.HandleFunc("/v3/auth/tokens", func(w http.ResponseWriter, r *http.Request) {
+		w.Header().Add("X-Subject-Token", "aaaa1111")
+
+		w.WriteHeader(http.StatusCreated)
+		fmt.Fprintf(w, `{ "token": { "expires_at": "2013-02-02T18:30:59.000000Z" } }`)
+	})
+
+	provider := &gophercloud.ProviderClient{
+		IdentityEndpoint: testhelper.Endpoint(),
+	}
+	client := NewClient(provider)
+
+	expected := testhelper.Endpoint() + "v3/"
+	if client.Endpoint != expected {
+		t.Errorf("Expected endpoint to be %s, but was %s", expected, client.Endpoint)
+	}
+}
diff --git a/openstack/identity/v3/tokens/requests.go b/openstack/identity/v3/tokens/requests.go
index 115737e..ab84d81 100644
--- a/openstack/identity/v3/tokens/requests.go
+++ b/openstack/identity/v3/tokens/requests.go
@@ -13,14 +13,14 @@
 	DomainName  string
 }
 
-func subjectTokenHeaders(c *gophercloud.ProviderClient, subjectToken string) map[string]string {
+func subjectTokenHeaders(c *gophercloud.ServiceClient, subjectToken string) map[string]string {
 	h := c.AuthenticatedHeaders()
 	h["X-Subject-Token"] = subjectToken
 	return h
 }
 
 // Create authenticates and either generates a new token, or changes the Scope of an existing token.
-func Create(c *gophercloud.ProviderClient, scope *Scope) (gophercloud.AuthResults, error) {
+func Create(c *gophercloud.ServiceClient, scope *Scope) (gophercloud.AuthResults, error) {
 	type domainReq struct {
 		ID   *string `json:"id,omitempty"`
 		Name *string `json:"name,omitempty"`
@@ -251,7 +251,7 @@
 }
 
 // Info validates and retrieves information about another token.
-func Info(c *gophercloud.ProviderClient, token string) (*TokenCreateResult, error) {
+func Info(c *gophercloud.ServiceClient, token string) (*TokenCreateResult, error) {
 	var result TokenCreateResult
 
 	response, err := perigee.Request("GET", getTokenURL(c), perigee.Options{
@@ -271,7 +271,7 @@
 }
 
 // Validate determines if a specified token is valid or not.
-func Validate(c *gophercloud.ProviderClient, token string) (bool, error) {
+func Validate(c *gophercloud.ServiceClient, token string) (bool, error) {
 	response, err := perigee.Request("HEAD", getTokenURL(c), perigee.Options{
 		MoreHeaders: subjectTokenHeaders(c, token),
 		OkCodes:     []int{204, 404},
@@ -284,7 +284,7 @@
 }
 
 // Revoke immediately makes specified token invalid.
-func Revoke(c *gophercloud.ProviderClient, token string) error {
+func Revoke(c *gophercloud.ServiceClient, token string) error {
 	_, err := perigee.Request("DELETE", getTokenURL(c), perigee.Options{
 		MoreHeaders: subjectTokenHeaders(c, token),
 		OkCodes:     []int{204},
diff --git a/openstack/identity/v3/tokens/requests_test.go b/openstack/identity/v3/tokens/requests_test.go
index e1b845f..cfb4ff1 100644
--- a/openstack/identity/v3/tokens/requests_test.go
+++ b/openstack/identity/v3/tokens/requests_test.go
@@ -15,10 +15,13 @@
 	testhelper.SetupHTTP()
 	defer testhelper.TeardownHTTP()
 
-	client := gophercloud.ProviderClient{
+	client := gophercloud.ServiceClient{
+		ProviderClient: gophercloud.ProviderClient{
+			IdentityEndpoint: testhelper.Endpoint(),
+			Options:          options,
+			TokenID:          "12345abcdef",
+		},
 		Endpoint: testhelper.Endpoint(),
-		Options:  options,
-		TokenID:  "12345abcdef",
 	}
 
 	testhelper.Mux.HandleFunc("/auth/tokens", func(w http.ResponseWriter, r *http.Request) {
@@ -41,9 +44,11 @@
 	testhelper.SetupHTTP()
 	defer testhelper.TeardownHTTP()
 
-	client := gophercloud.ProviderClient{
+	client := gophercloud.ServiceClient{
+		ProviderClient: gophercloud.ProviderClient{
+			Options: options,
+		},
 		Endpoint: testhelper.Endpoint(),
-		Options:  options,
 	}
 	if includeToken {
 		client.TokenID = "abcdef123456"
@@ -240,9 +245,11 @@
 	testhelper.SetupHTTP()
 	defer testhelper.TeardownHTTP()
 
-	client := gophercloud.ProviderClient{
+	client := gophercloud.ServiceClient{
+		ProviderClient: gophercloud.ProviderClient{
+			Options: gophercloud.AuthOptions{UserID: "me", Password: "shhh"},
+		},
 		Endpoint: testhelper.Endpoint(),
-		Options:  gophercloud.AuthOptions{UserID: "me", Password: "shhh"},
 	}
 
 	testhelper.Mux.HandleFunc("/auth/tokens", func(w http.ResponseWriter, r *http.Request) {
@@ -391,9 +398,11 @@
 	testhelper.SetupHTTP()
 	defer testhelper.TeardownHTTP()
 
-	client := gophercloud.ProviderClient{
+	client := gophercloud.ServiceClient{
+		ProviderClient: gophercloud.ProviderClient{
+			TokenID: "12345abcdef",
+		},
 		Endpoint: testhelper.Endpoint(),
-		TokenID:  "12345abcdef",
 	}
 
 	testhelper.Mux.HandleFunc("/auth/tokens", func(w http.ResponseWriter, r *http.Request) {
@@ -425,10 +434,12 @@
 	}
 }
 
-func prepareAuthTokenHandler(t *testing.T, expectedMethod string, status int) gophercloud.ProviderClient {
-	client := gophercloud.ProviderClient{
+func prepareAuthTokenHandler(t *testing.T, expectedMethod string, status int) gophercloud.ServiceClient {
+	client := gophercloud.ServiceClient{
+		ProviderClient: gophercloud.ProviderClient{
+			TokenID: "12345abcdef",
+		},
 		Endpoint: testhelper.Endpoint(),
-		TokenID:  "12345abcdef",
 	}
 
 	testhelper.Mux.HandleFunc("/auth/tokens", func(w http.ResponseWriter, r *http.Request) {
diff --git a/openstack/identity/v3/tokens/urls.go b/openstack/identity/v3/tokens/urls.go
index ac5a19f..5b47c02 100644
--- a/openstack/identity/v3/tokens/urls.go
+++ b/openstack/identity/v3/tokens/urls.go
@@ -2,6 +2,6 @@
 
 import "github.com/rackspace/gophercloud"
 
-func getTokenURL(c *gophercloud.ProviderClient) string {
+func getTokenURL(c *gophercloud.ServiceClient) string {
 	return c.ServiceURL("auth", "tokens")
 }
diff --git a/openstack/identity/v3/tokens/urls_test.go b/openstack/identity/v3/tokens/urls_test.go
index 5007b3d..5ff8bc6 100644
--- a/openstack/identity/v3/tokens/urls_test.go
+++ b/openstack/identity/v3/tokens/urls_test.go
@@ -11,7 +11,7 @@
 	testhelper.SetupHTTP()
 	defer testhelper.TeardownHTTP()
 
-	client := gophercloud.ProviderClient{Endpoint: testhelper.Endpoint()}
+	client := gophercloud.ServiceClient{Endpoint: testhelper.Endpoint()}
 
 	expected := testhelper.Endpoint() + "auth/tokens"
 	actual := getTokenURL(&client)
