diff --git a/authenticate_test.go b/authenticate_test.go
index 0402e2a..f077dab 100644
--- a/authenticate_test.go
+++ b/authenticate_test.go
@@ -148,7 +148,7 @@
 		return
 	}
 
-	err = c.RegisterProvider("provider", &Provider{AuthEndpoint: "/"})
+	err = c.RegisterProvider("provider", Provider{AuthEndpoint: "/"})
 	if err != nil {
 		t.Error(err)
 		return
@@ -170,7 +170,7 @@
 	c.UseCustomClient(&http.Client{
 		Transport: tt,
 	})
-	c.RegisterProvider("provider", &Provider{AuthEndpoint: "/"})
+	c.RegisterProvider("provider", Provider{AuthEndpoint: "/"})
 
 	tt.expectTenantId = false
 	_, err := c.Authenticate("provider", AuthOptions{
@@ -205,7 +205,7 @@
 func TestUserNameAndPassword(t *testing.T) {
 	c := TestContext()
 	c.UseCustomClient(&http.Client{Transport: &testTransport{}})
-	c.RegisterProvider("provider", &Provider{AuthEndpoint: "http://localhost/"})
+	c.RegisterProvider("provider", Provider{AuthEndpoint: "http://localhost/"})
 
 	credentials := []AuthOptions{
 		AuthOptions{},
@@ -232,7 +232,7 @@
 	tt := &testTransport{}
 	tt.response = SUCCESSFUL_RESPONSE
 	c.UseCustomClient(&http.Client{Transport: tt})
-	c.RegisterProvider("provider", &Provider{AuthEndpoint: "http://localhost"})
+	c.RegisterProvider("provider", Provider{AuthEndpoint: "http://localhost"})
 
 	acc, err := c.Authenticate("provider", AuthOptions{Username: "u", Password: "p"})
 	if err != nil {
@@ -252,7 +252,7 @@
 	tt := &testTransport{}
 	tt.response = SUCCESSFUL_RESPONSE
 	c.UseCustomClient(&http.Client{Transport: tt})
-	c.RegisterProvider("provider", &Provider{AuthEndpoint: "http://localhost"})
+	c.RegisterProvider("provider", Provider{AuthEndpoint: "http://localhost"})
 
 	acc, err := c.Authenticate("provider", AuthOptions{Username: "u", Password: "p"})
 	if err != nil {
@@ -266,8 +266,8 @@
 		return
 	}
 
-	types := map[string]bool {
-		"compute": true,
+	types := map[string]bool{
+		"compute":      true,
 		"rax:database": true,
 	}
 	for _, entry := range svcs {
@@ -283,7 +283,7 @@
 	tt := &testTransport{}
 	tt.response = SUCCESSFUL_RESPONSE
 	c.UseCustomClient(&http.Client{Transport: tt})
-	c.RegisterProvider("provider", &Provider{AuthEndpoint: "http://localhost"})
+	c.RegisterProvider("provider", Provider{AuthEndpoint: "http://localhost"})
 
 	acc, err := c.Authenticate("provider", AuthOptions{Username: "u", Password: "p"})
 	if err != nil {
@@ -296,4 +296,4 @@
 		t.Error("Expected user ID of 16148; got", u.Id)
 		return
 	}
-}
\ No newline at end of file
+}
