diff --git a/Data/JSON2.hs b/Data/JSON2.hs
--- a/Data/JSON2.hs
+++ b/Data/JSON2.hs
@@ -7,13 +7,15 @@
    Json(..), Jsons,
    ToJson(..), FromJson(..),
    -- * Building JSON objects
-   emptyObj, singleObj, (==>), fromList,
+   emptyObj,  (==>), fromList,
    -- * Union JSON objects
    unionObj, unionsObj, unionRecObj,
    -- * Rendering to string
    toString,
-   -- * Pretty print
-   pprint, pprints
+   -- * Debug print
+   pprint, pprints,
+   -- * Deprecated
+   singleObj
   ) 
 where
 
@@ -21,14 +23,18 @@
 import qualified Data.Map as Map
 import Data.Ratio
 import Data.Typeable (Typeable)
+import Data.Time.Clock (UTCTime)
+import Data.Time.Format (formatTime, parseTime)
+import System.Locale (defaultTimeLocale)
 
+
 infixr 6 ==>
 
 -- * Data types and classes
 
 data Json = JString String
 	  | JNumber Rational
-	  | JBool Bool
+	  | JBool !Bool
 	  | JNull
 	  | JArray [Json]
 	  | JObject (Map.Map String Json) deriving (Eq, Ord, Typeable, Show, Read)
@@ -36,11 +42,13 @@
 type Jsons = [Json]
 
 -- | This module provides instances @ToJson@ for :
--- @(), Char,  Json, Maybe, Bool, String, Integr, Int, Double, Float,
--- Rational, Map String a, List, tuples 2-5 sizes@ .
+-- @(), Char,  Json, Maybe, Either, Bool, String, Integr, Int, Double, Float,
+-- UTCTime format: UTC YYYY-MM-DD HH:MM:SS , Map String a, List, tuples 2-5 sizes@ .
 --
--- Example :
+-- Examples :
 --
+-- > getCurrentTime >>= print . toJson == JString "2011-01-29 12:12:39 UTC"
+-- >
 -- > table :: [(Int, Maybe String, Bool)]
 -- > table = [
 -- >     (1, Just "One", False),
@@ -54,7 +62,7 @@
 
 -- | This module provides instances @FromJson@ for :
 -- @Json, Maybe, Bool, String, Integr, Int, Double, Float,
--- Rational, Map String a, List, tuples 2-5 sizes@ .
+--  Maybe UTCTime ,Map String a, List, tuples 2-5 sizes@ .
 --
 -- Example :
 --
@@ -64,6 +72,12 @@
     fromJson :: Json -> a
 
 -- ** Instances FromJson and ToJson
+--
+instance ToJson UTCTime where
+    toJson ut = JString $ formatTime defaultTimeLocale templateUTC ut
+instance FromJson (Maybe UTCTime) where
+    fromJson (JString t) =  parseTime defaultTimeLocale templateUTC t :: Maybe UTCTime
+templateUTC =  "%Y-%m-%d %T UTC"
 
 instance  ToJson () where
     toJson () = JArray []
@@ -81,6 +95,10 @@
 instance FromJson a => FromJson (Maybe a) where
     fromJson x = if x == JNull then Nothing else Just (fromJson x)
 
+instance (ToJson a, ToJson b) => ToJson (Either a b) where
+    toJson (Left a)  = toJson a
+    toJson (Right b) = toJson b
+
 instance ToJson Bool where
     toJson x = JBool x
 instance FromJson Bool where
@@ -111,16 +129,12 @@
 instance FromJson Float where
     fromJson (JNumber i) = fromRational i
 
-instance ToJson Rational where
-    toJson = JNumber
-instance FromJson Rational where
-    fromJson (JNumber i) =  i
-
 instance (ToJson a) => ToJson (Map.Map String a) where
     toJson = JObject .  Map.map toJson
 instance (FromJson a) => FromJson (Map.Map String a) where
     fromJson (JObject m) = Map.map fromJson m
 
+
 instance (ToJson a) => ToJson [a] where
     toJson = JArray . map toJson
 instance (FromJson a) => FromJson [a] where
@@ -154,7 +168,7 @@
 emptyObj :: Json
 emptyObj = JObject (Map.empty)
 
--- | Create single JSON object.
+-- | DEPRECATED see @(`==>`)@.
 singleObj :: ToJson a => String -> a -> Json
 singleObj k v = JObject (Map.singleton k (toJson v))
 
@@ -243,7 +257,7 @@
 toString (JArray vs) = "[" ++ (intercalate ", " $ map (toString) vs) ++ "]"
 toString (JObject l) = "{" ++ (intercalate ", " $ map (\(k, v) -> toString (JString k) ++ ": " ++ toString v) (Map.toList l)) ++ "}"
 
--- * Pretty print
+-- * Debug print
 
 -- | Pretty-prints JSON.
 pprint :: Json -> IO ()
diff --git a/json2.cabal b/json2.cabal
--- a/json2.cabal
+++ b/json2.cabal
@@ -1,5 +1,5 @@
 Name:                json2
-Version:             0.3
+Version:             0.3.1
 Synopsis:            This library provides support for JSON. 
 Category:            Data, Text, JSON
 Description:         This library provides support for JSON.
@@ -13,14 +13,16 @@
 Cabal-version:       >= 1.6
 
 extra-source-files:
-  Examples/ExampleSqlite.hs
-  Examples/ExampleQuery.hs
+                    Examples/ExampleSqlite.hs
+                    Examples/ExampleQuery.hs
 
 library
-  Exposed-modules:     Data.JSON2
-                       Data.JSON2.FromSQL
-                       Data.JSON2.Query
+  Exposed-modules:
+                   Data.JSON2
+                   Data.JSON2.FromSQL
+                   Data.JSON2.Query
 
-  Build-Depends:       base       >= 4   && < 5,
-                       containers >= 0.2 && < 1
-		       
+  Build-Depends:   base       >= 4   && < 5,
+                   containers >= 0.2 && < 1,
+                   old-locale >= 1,
+                   time       >= 1.1
