diff --git a/rackspace/db/v1/instances/results.go b/rackspace/db/v1/instances/results.go
index 2d44e08..66b3ce1 100644
--- a/rackspace/db/v1/instances/results.go
+++ b/rackspace/db/v1/instances/results.go
@@ -1,8 +1,59 @@
 package instances
 
-import "github.com/rackspace/gophercloud"
+import (
+	"github.com/mitchellh/mapstructure"
+	"github.com/rackspace/gophercloud"
+)
+
+type Datastore struct {
+	Type    string
+	Version string
+}
+
+type Flavor struct {
+	ID    string
+	Links []gophercloud.Link
+}
+
+type Volume struct {
+	Size int
+}
+
+type Instance struct {
+	Created   string //time.Time
+	Updated   string //time.Time
+	Datastore Datastore
+	Flavor    Flavor
+	Hostname  string
+	ID        string
+	Links     []gophercloud.Link
+	Name      string
+	Status    string
+	Volume    Volume
+}
 
 // CreateResult represents the result of a Create operation.
 type CreateResult struct {
 	gophercloud.Result
 }
+
+// func handleInstanceConversion(from reflect.Kind, to reflect.Kind, data interface{}) (interface{}, error) {
+// 	if (from == reflect.String) && (to == reflect.Map) {
+// 		return map[string]interface{}{}, nil
+// 	}
+// 	return data, nil
+// }
+
+func (r CreateResult) Extract() (*Instance, error) {
+	if r.Err != nil {
+		return nil, r.Err
+	}
+
+	var response struct {
+		Instance Instance `mapstructure:"instance"`
+	}
+
+	err := mapstructure.Decode(r.Body, &response)
+
+	return &response.Instance, err
+}
