diff --git a/servers.go b/servers.go
index a2348c5..798666a 100644
--- a/servers.go
+++ b/servers.go
@@ -446,27 +446,27 @@
 // http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_extensions.html#ext_status
 // for more details.  It's too lengthy to include here.
 type Server struct {
-	AccessIPv4         string         `json:"accessIPv4"`
-	AccessIPv6         string         `json:"accessIPv6"`
-	Addresses          AddressSet     `json:"addresses"`
-	Created            string         `json:"created"`
-	Flavor             FlavorLink     `json:"flavor"`
-	HostId             string         `json:"hostId"`
-	Id                 string         `json:"id"`
-	Image              ImageLink      `json:"image"`
-	Links              []Link         `json:"links"`
-	Metadata           interface{}    `json:"metadata"`
-	Name               string         `json:"name"`
-	Progress           int            `json:"progress"`
-	Status             string         `json:"status"`
-	TenantId           string         `json:"tenant_id"`
-	Updated            string         `json:"updated"`
-	UserId             string         `json:"user_id"`
-	OsDcfDiskConfig    string         `json:"OS-DCF:diskConfig"`
-	RaxBandwidth       []RaxBandwidth `json:"rax-bandwidth:bandwidth"`
-	OsExtStsPowerState int            `json:"OS-EXT-STS:power_state"`
-	OsExtStsTaskState  string         `json:"OS-EXT-STS:task_state"`
-	OsExtStsVmState    string         `json:"OS-EXT-STS:vm_state"`
+	AccessIPv4         string            `json:"accessIPv4"`
+	AccessIPv6         string            `json:"accessIPv6"`
+	Addresses          AddressSet        `json:"addresses"`
+	Created            string            `json:"created"`
+	Flavor             FlavorLink        `json:"flavor"`
+	HostId             string            `json:"hostId"`
+	Id                 string            `json:"id"`
+	Image              ImageLink         `json:"image"`
+	Links              []Link            `json:"links"`
+	Metadata           map[string]string `json:"metadata"`
+	Name               string            `json:"name"`
+	Progress           int               `json:"progress"`
+	Status             string            `json:"status"`
+	TenantId           string            `json:"tenant_id"`
+	Updated            string            `json:"updated"`
+	UserId             string            `json:"user_id"`
+	OsDcfDiskConfig    string            `json:"OS-DCF:diskConfig"`
+	RaxBandwidth       []RaxBandwidth    `json:"rax-bandwidth:bandwidth"`
+	OsExtStsPowerState int               `json:"OS-EXT-STS:power_state"`
+	OsExtStsTaskState  string            `json:"OS-EXT-STS:task_state"`
+	OsExtStsVmState    string            `json:"OS-EXT-STS:vm_state"`
 }
 
 // NewServerSettings structures record those fields of the Server structure to change
@@ -523,17 +523,17 @@
 // Any Links provided are used to refer to the server specifically by URL.
 // These links are useful for making additional REST calls not explicitly supported by Gorax.
 type NewServer struct {
-	Name            string          `json:"name,omitempty"`
-	ImageRef        string          `json:"imageRef,omitempty"`
-	FlavorRef       string          `json:"flavorRef,omitempty"`
-	Metadata        interface{}     `json:"metadata,omitempty"`
-	Personality     []FileConfig    `json:"personality,omitempty"`
-	Networks        []NetworkConfig `json:"networks,omitempty"`
-	AdminPass       string          `json:"adminPass,omitempty"`
-	KeyPairName     string          `json:"key_name,omitempty"`
-	Id              string          `json:"id,omitempty"`
-	Links           []Link          `json:"links,omitempty"`
-	OsDcfDiskConfig string          `json:"OS-DCF:diskConfig,omitempty"`
+	Name            string            `json:"name,omitempty"`
+	ImageRef        string            `json:"imageRef,omitempty"`
+	FlavorRef       string            `json:"flavorRef,omitempty"`
+	Metadata        map[string]string `json:"metadata,omitempty"`
+	Personality     []FileConfig      `json:"personality,omitempty"`
+	Networks        []NetworkConfig   `json:"networks,omitempty"`
+	AdminPass       string            `json:"adminPass,omitempty"`
+	KeyPairName     string            `json:"key_name,omitempty"`
+	Id              string            `json:"id,omitempty"`
+	Links           []Link            `json:"links,omitempty"`
+	OsDcfDiskConfig string            `json:"OS-DCF:diskConfig,omitempty"`
 }
 
 // ResizeRequest structures are used internally to encode to JSON the parameters required to resize a server instance.
