diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Changelog
+
+## 1.10
+
+* Removed `Rest.Container.StringMap` in favor of `rest-stringmap`. `KeyValues` is now an alias for `Rest.StringMap.HashMap.Strict String Value`.
diff --git a/rest-types.cabal b/rest-types.cabal
--- a/rest-types.cabal
+++ b/rest-types.cabal
@@ -1,5 +1,5 @@
 Name:             rest-types
-Version:          1.9.0.2
+Version:          1.10
 Description:      Silk Rest Framework Types
 Synopsis:         Silk Rest Framework Types
 Maintainer:       code@silk.co
@@ -9,11 +9,12 @@
 License:          BSD3
 License-File:     LICENSE
 
+Extra-Source-Files: CHANGELOG.md
+
 Library
   GHC-Options:     -Wall
   Hs-Source-Dirs:   src
   Build-Depends:
-
       base == 4.*
     , aeson >= 0.7 && < 0.8
     , bytestring >= 0.9 && < 0.11
@@ -24,8 +25,8 @@
     , mtl >= 2.0 && < 2.2
     , regular == 0.3.*
     , regular-xmlpickler == 0.2.*
+    , rest-stringmap == 0.1.*
     , text >= 0.11 && < 1.2
-    , tostring == 0.2.*
     , unordered-containers == 0.2.*
     , utf8-string == 0.3.*
     , uuid >= 1.2 && < 1.4
diff --git a/src/Rest/Types/Container.hs b/src/Rest/Types/Container.hs
--- a/src/Rest/Types/Container.hs
+++ b/src/Rest/Types/Container.hs
@@ -15,20 +15,13 @@
   #-}
 module Rest.Types.Container
   ( List(..)
-  , StringMap(..)
-  , fromStringMap
-  , toStringMap
   , SomeOutput(..)
   ) where
 
-import Control.Applicative
-import Data.Aeson
+import Prelude hiding (mapM)
+
+import Data.Aeson.Types
 import Data.JSON.Schema hiding (Object, Value)
-import Data.JSON.Schema.Combinators (field)
-import Data.Map (Map)
-import Data.String
-import Data.String.ToString
-import Data.Text (pack, unpack)
 import Data.Typeable
 import GHC.Generics
 import Generics.Generic.Aeson
@@ -37,8 +30,6 @@
 import Text.XML.HXT.Arrow.Pickle
 import Text.XML.HXT.Arrow.Pickle.Schema
 import Text.XML.HXT.Arrow.Pickle.Xml
-import qualified Data.HashMap.Strict as H
-import qualified Data.Map            as M
 
 -------------------------------------------------------------------------------
 
@@ -55,31 +46,6 @@
 instance ToJSON     a => ToJSON     (List a) where toJSON    = gtoJson
 instance FromJSON   a => FromJSON   (List a) where parseJSON = gparseJson
 instance JSONSchema a => JSONSchema (List a) where schema    = gSchema
-
--------------------------------------------------------------------------------
-
-newtype StringMap a b = StringMap { unMap :: [(a, b)] } deriving (Show, Typeable)
-
-deriveAll ''StringMap "PFStringMap"
-type instance PF (StringMap a b) = PFStringMap a b
-
-instance (IsString a, ToString a, XmlPickler b) => XmlPickler (StringMap a b) where
-  xpickle = xpElem "map" (xpWrap (StringMap, unMap) (xpList (xpPair (xpElem "key" (xpWrap (fromString,toString) xpText)) xpickle)))
-
-instance (ToString a, ToJSON b) => ToJSON (StringMap a b) where
-  toJSON = toJSON . Object . H.fromList . map (\(a,b) -> pack (toString a) .= b) . unMap
-
-instance (IsString a, FromJSON b) => FromJSON (StringMap a b) where
-  parseJSON = withObject "StringMap" (fmap StringMap . mapM (\(k,v) -> (fromString . unpack $ k,) <$> parseJSON v) . H.toList)
-
-instance (IsString a, ToString a, JSONSchema b) => JSONSchema (StringMap a b) where
-  schema _ = field "key" False (schema (Proxy :: Proxy b))
-
-fromStringMap :: (Ord a, IsString a, ToString a) => StringMap a b -> Map a b
-fromStringMap = M.fromList . unMap
-
-toStringMap :: (Ord a, IsString a, ToString a) => Map a b -> StringMap a b
-toStringMap = StringMap . M.toList
 
 -------------------------------------------------------------------------------
 
diff --git a/src/Rest/Types/Container/Resource.hs b/src/Rest/Types/Container/Resource.hs
--- a/src/Rest/Types/Container/Resource.hs
+++ b/src/Rest/Types/Container/Resource.hs
@@ -1,9 +1,9 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
+  , EmptyDataDecls
   , TemplateHaskell
   , TypeFamilies
-  , EmptyDataDecls
   #-}
 module Rest.Types.Container.Resource
   ( Resource (..)
@@ -20,12 +20,11 @@
 import Generics.Generic.Aeson
 import Generics.Regular (PF, deriveAll)
 import Generics.Regular.XmlPickler (gxpickle)
+import Rest.StringMap.HashMap.Strict (StringHashMap)
 import Text.XML.HXT.Arrow.Pickle
 import qualified Data.JSON.Schema as Json
 
-import Rest.Types.Container
-
-type KeyValues = StringMap String Value
+type KeyValues = StringHashMap String Value
 
 newtype Value = Value { unValue :: String } deriving (Show, Typeable)
 
