diff --git a/src/Database/Tempodb/Methods/Read.hs b/src/Database/Tempodb/Methods/Read.hs
--- a/src/Database/Tempodb/Methods/Read.hs
+++ b/src/Database/Tempodb/Methods/Read.hs
@@ -10,14 +10,13 @@
 import           Data.Aeson             as A
 import           Data.ByteString.Char8  as C8
 import           Data.ByteString.Lazy   (fromStrict)
-import           Data.Int
 import           Data.Monoid
 import           Database.Tempodb.Types
 import           Database.Tempodb.Util
 import           Network.HTTP.Base      (urlEncodeVars)
 import           Network.Http.Client
 
-readOne :: IdOrKey -> Maybe QueryArgs -> Tempodb (Maybe (SeriesData Int64))
+readOne :: IdOrKey -> Maybe QueryArgs -> Tempodb (Maybe SeriesData)
 readOne q qa = do
     auth <- ask
     req  <- liftIO . buildRequest $ do
@@ -37,7 +36,7 @@
         Nothing  -> mempty
         Just qry -> "?" <> (C8.pack $ urlEncodeVars qry)
 
-readMulti :: Maybe QueryArgs -> Tempodb (Maybe [SeriesData Int64])
+readMulti :: Maybe QueryArgs -> Tempodb (Maybe [SeriesData])
 readMulti q = do
     auth <- ask
     req  <- liftIO . buildRequest $ do
diff --git a/src/Database/Tempodb/Methods/Write.hs b/src/Database/Tempodb/Methods/Write.hs
--- a/src/Database/Tempodb/Methods/Write.hs
+++ b/src/Database/Tempodb/Methods/Write.hs
@@ -11,13 +11,12 @@
 import           Data.Aeson             as A
 import           Data.ByteString.Char8  as C8
 import           Data.ByteString.Lazy   (fromStrict, toStrict)
-import           Data.Int
 import           Data.Monoid
 import           Database.Tempodb.Types as T
 import           Database.Tempodb.Util
 import           Network.Http.Client
 
-writeOne :: IdOrKey -> Data Int64 -> Tempodb Bool
+writeOne :: IdOrKey -> Data -> Tempodb Bool
 writeOne q d = do
     let postdata = toStrict $ A.encode d
     auth <- ask
@@ -35,7 +34,7 @@
     ident (T.SeriesKey k) = "/key/" <> k
     path = rootpath <> "/series" <> (ident q)
 
-writeBulk :: Bulk Int64 -> Tempodb Bool
+writeBulk :: Bulk -> Tempodb Bool
 writeBulk d = do
     let postData = toStrict $ A.encode d
     auth <- ask
@@ -48,7 +47,7 @@
 
     return True
 
-writeMulti :: [Data Int64] -> T.Tempodb (Either (Maybe [Data Int64]) Bool)
+writeMulti :: [Data] -> T.Tempodb (Either (Maybe [Data]) Bool)
 writeMulti d = do
     let postData = toStrict $ A.encode d
     auth <- ask
diff --git a/src/Database/Tempodb/Types.hs b/src/Database/Tempodb/Types.hs
--- a/src/Database/Tempodb/Types.hs
+++ b/src/Database/Tempodb/Types.hs
@@ -12,7 +12,6 @@
 import           Data.Aeson.Types
 import qualified Data.ByteString       as B
 import           Data.ByteString.Char8 as C8
-import           Data.Int
 import           Data.Map              (Map)
 import qualified Data.Text             as T
 import           Data.Text.Encoding    (decodeUtf8, encodeUtf8)
@@ -84,18 +83,20 @@
     parseJSON = withText "ByteString" $ pure . encodeUtf8
     {-# INLINE parseJSON #-}
 
-data Data a = Data
+data Data = Data
     { uid       :: Maybe IdOrKey
     , timestamp :: Maybe TempoDBTime
-    , value     :: a
+    , value     :: Double
     } deriving (Show, Eq)
 
-instance Ord a => Ord (Data a) where
-    compare (Data _ t _) (Data _ t' _) = t `compare` t'
+instance Ord Data where
+    compare (Data _ (Just t) _) (Data _ (Just t') _) = compare t t'
+    -- compare (Data _ Nothing _) (Data _ t' _)         = compare Nothing t'
+    -- compare (Data _ Nothing v) (Data _ Nothing v')   = compare v v'
 
-data Bulk a = Bulk
+data Bulk = Bulk
     { timestmp   :: TempoDBTime
-    , bulkValues :: [Data a]
+    , bulkValues :: [Data]
     } deriving (Show, Eq, Ord)
 
 data Rollup = Rollup
@@ -114,16 +115,16 @@
     , count  :: Int
     } deriving (Show, Eq, Ord)
 
-data SeriesData a = SeriesData
+data SeriesData = SeriesData
     { series  :: Series
     , start   :: TempoDBTime
     , end     :: TempoDBTime
-    , values  :: [Data a]
+    , values  :: [Data]
     , rollup  :: Maybe Rollup
     , summary :: Summary
     } deriving (Show, Eq, Ord)
 
-instance FromJSON (SeriesData Int64) where
+instance FromJSON SeriesData where
     parseJSON (Object o) = SeriesData    <$>
                            o .: "series" <*>
                            o .: "start"  <*>
@@ -134,13 +135,13 @@
 
     parseJSON _ = mzero
 
-instance FromJSON (Bulk Int64) where
+instance FromJSON Bulk where
     parseJSON (Object o) = Bulk     <$>
                            o .: "t" <*>
                            o .: "data"
     parseJSON _ = mzero
 
-instance ToJSON (Bulk Int64) where
+instance ToJSON Bulk where
     toJSON (Bulk t v) = object
         [ "t"    .= t
         , "data" .= v
@@ -178,10 +179,10 @@
                   Nothing -> mzero
     parseJSON _          = mzero
 
-instance FromJSON (Data Int64) where
+instance FromJSON Data where
     parseJSON = parseSeriesData
 
-parseSeriesData :: Value -> Parser (Data Int64)
+parseSeriesData :: Value -> Parser Data
 parseSeriesData v = do
     case v of
         Object o -> do
@@ -199,10 +200,10 @@
         Nothing    -> return Nothing
         Just idkey -> return . Just $ SeriesKey idkey
 
-instance ToJSON (Data Int64) where
+instance ToJSON Data where
     toJSON = buildSeriesData
 
-buildSeriesData :: (Data Int64) -> Value
+buildSeriesData :: Data -> Value
 buildSeriesData (Data i t v) = object . ts . eid $ ["v" .= v]
   where
     ts l = case t of
diff --git a/tempodb.cabal b/tempodb.cabal
--- a/tempodb.cabal
+++ b/tempodb.cabal
@@ -1,5 +1,5 @@
 name:                tempodb
-version:             0.2.2.4
+version:             0.2.2.5
 synopsis:            A small Haskell wrapper around the TempoDB api.
 
 description:         TempoDB is a time-series database as-a-service with a
