diff --git a/hjson-query.cabal b/hjson-query.cabal
--- a/hjson-query.cabal
+++ b/hjson-query.cabal
@@ -1,12 +1,11 @@
 Name:                hjson-query
-Version:             1.0.1
+Version:             1.0.2
 Synopsis:            library for querying from JSON
 Category:            Text
 Description:         library(HXT-like) for querying from JSON
 License:             BSD3
 License-file:        LICENSE
-Author:              YuriyIskra  <iskra.yw@gmail.com>
-Maintainer:          YuriyIskra  <iskra.yw@gmail.com>
+Author:              YuriyIskra
 Stability:           Experimental
 Copyright:           Copyright (c) 2010 Yuriy Iskra
 Build-type:          Simple
@@ -23,7 +22,3 @@
                        containers >= 0.2 && < 1
                 
   hs-source-dirs:      src
-
---Source-repository head
---    Type: git
---    Location: git://github.com/iskra/hjson-query.git
diff --git a/src/Text/HJson/Query.hs b/src/Text/HJson/Query.hs
--- a/src/Text/HJson/Query.hs
+++ b/src/Text/HJson/Query.hs
@@ -55,26 +55,26 @@
 
 -- Building
 
--- | create empty JSON object
+-- | Create empty JSON object.
 emptyObj :: Json
 emptyObj = JObject (M.empty)
 
--- | create JSON object
+-- | Create single JSON object.
 (-->) :: String -> Json -> Json
 key --> val = JObject (M.singleton key val)
 
--- | merge two JSON Objects
+-- | Merge two JSON Objects.
 (<>) :: Json -> Json -> Json
 (JObject x ) <> (JObject y)  = JObject $ M.union x y
-(<>) _  _ = emptyObj
+(<>) x  _ = x
 
 
--- | recursive merge two JSON Objects
+-- | Recursive merge two JSON Objects.
 (<.>) :: Json -> Json -> Json
 (JObject x) <.> (JObject y) = JObject $ M.unionWith (\m n ->  m <.> n) x y
-(<.>) _  _  = emptyObj
+(<.>) x  _  = x
 
--- | merge list JSON Objects
+-- | Merge list JSON Objects.
 merges :: [Json] -> Json
 merges [] = emptyObj
 merges js = foldl1 (<>) js
@@ -117,48 +117,48 @@
 
 -- Fitering
 
--- | filter JSON objects 
+-- | Filter JSON objects .
 isObj :: JFilter
 isObj (JObject o) = [JObject o]
 isObj _              = []
 
--- | filter JSON arrays
+-- | Filter JSON arrays.
 isArr :: JFilter
 isArr (JArray a)  = [JArray a]
 isArr _              = []
 
--- | filter JSON strings
+-- | Filter JSON strings.
 isStr :: JFilter
 isStr (JString s)  = [JString s]
 isStr _            = []
 
--- | predicative filter JSON strings
+-- | Predicative filter JSON strings.
 isStrBy :: (String -> Bool) -> JFilter
 isStrBy p (JString s)  = if p s then [JString s] else []
 isStrBy _ _           = []
 
--- | filter JSON numbers
+-- | Filter JSON numbers.
 isNum :: JFilter
 isNum (JNumber n) = [JNumber n]
 isNum _           = []
 
 
--- | predicative filter JSON numbers
+-- | Predicative filter JSON numbers.
 isNumBy :: Fractional a => (a -> Bool) -> JFilter
 isNumBy p (JNumber n) = if p (fromRational n) then [JNumber n] else []
 isNumBy _ _          = []
 
--- | filter JSON Bool
+-- | Filter JSON Bool.
 isBool :: JFilter
 isBool (JBool p)   = [JBool p]
 isBool _           = []
 
--- | filter JSON null
+-- | Filter JSON null.
 isNull :: JFilter
 isNull JNull = [JNull]
 isNull _ = []
 
--- | filter primitive types
+-- | Filter primitive types.
 isPrimitive :: JFilter
 isPrimitive (JString s)  = [JString s]
 isPrimitive (JNumber n)  = [JNumber n]
@@ -167,12 +167,12 @@
 isPrimitive _            = []
 
 
--- | get elements from object with key
+-- | Get elements from object with key.
 getFromKey :: String -> JFilter
 getFromKey k (JObject m) = Mb.catMaybes  [(M.lookup k m)]
 getFromKey _ _                = []
 
--- | get elements from object with keys
+-- | Get elements from object with keys.
 -- 
 --  Example:
 -- 
@@ -198,33 +198,35 @@
 getFromKeys ks (JObject m) = Mb.catMaybes $ map (\k -> (M.lookup k m)) (L.nub ks) 
 getFromKeys _ _            = []
 
--- | get all elements from object
+-- | Get all elements from object.
 getFromObj :: JFilter
 getFromObj (JObject o) = M.elems o
 getFromObj _              = []
 
--- | get all elements from array
+-- | Get all elements from array.
 getFromArr :: JFilter
 getFromArr (JArray a)  = a
 getFromArr _           = []
 
--- | get element from array with index
+-- | Get element from array with index.
 getFromIndex :: Int -> JFilter
 getFromIndex i (JArray a) = if i < length a  then [a !! i] else []
 getFromIndex _ _          = []
 
--- | get elements from array with indexes
+-- | Get elements from array with indexes.
 getFromIndexes :: [Int] -> JFilter
 getFromIndexes is ja        = concat [getFromIndex i ja | i <- is]
 
--- | get all elements from object and array
+-- | Get all elements from object and array.
 getChildern :: JFilter
 getChildern (JObject o) = M.elems o
 getChildern (JArray a)  = a
 getChildern _              = []
 
--- | Example:
+-- | @(f >>> g)@  - Apply filter f, later filter g .
 --
+--   Example:
+--
 -- > query2 = query1 >>> getFromObj 
 -- > json2 = query2 merg
 -- > ex2 = pputJsons json2
@@ -239,11 +241,11 @@
 (>>>)	    :: JFilter -> JFilter -> JFilter 
 (f >>> g) t =  concat [g t' | t' <- f t]
 
--- | concat result two filters
+-- | Concat result two filters.
 (<+>)	    :: JFilter -> JFilter -> JFilter
 (f <+> g) t =  f t ++ g t
 
--- | 
+-- |  @(f `orElse` g)@ - Apply f, if @f@ returned @null@ apply @g@.
 orElse	:: JFilter -> JFilter -> JFilter
 orElse f g t
   | null res1 = g t
@@ -251,27 +253,27 @@
   where
   res1 = f t
 
--- | 
+-- | @(f `when` g)@ - When @g@ returned @not null@, apply @f@. 
 when	:: JFilter -> JFilter -> JFilter
 when f g t
   | null (g t) = [t]
   | otherwise  = f t
 
--- | 
+-- |  @(f `guards` g )@ - If @f@ returned null then @null@ else apply @g@.
 guards	:: JFilter -> JFilter -> JFilter
 guards g f t
   | null (g t) = []
   | otherwise  = f t
 
--- | tree traversal filter for object
+-- | Tree traversal filter for object.
 deepObj	:: JFilter -> JFilter
 deepObj f  = f `orElse` (getFromObj >>> deepObj f)
 
--- | tree traversal filter for array
+-- | Tree traversal filter for array.
 deepArr :: JFilter -> JFilter
 deepArr f  = f `orElse` (getFromArr >>> deepArr f)
 
--- | tree traversal filter for objects and arrays
+-- | Tree traversal filter for objects and arrays.
 --
 -- Example:
 --
@@ -291,6 +293,7 @@
 -- > deep getFromArr
 -- >
 -- 
---  See also: <www.haskell.org/haskellwiki/HXT> 
+-- See also: <http://www.haskell.org/haskellwiki/HXT#The_concept_of_filters>
+
 deep	:: JFilter -> JFilter
 deep f  = f `orElse` (getChildern >>> deep f)
