diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -4,61 +4,71 @@
 import Data.Aeson          (decode, toJSON)
 import Data.Maybe          (fromJust)
 import Data.HashMap.Strict (delete)
-import Control.Monad       (when)
 import Control.Lens
 import Control.Applicative
-
-import qualified Data.ByteString.Lazy.Char8 as C
 import System.Console.ArgParser
 import System.Process
-
+import qualified Data.ByteString.Lazy.Char8 as C
 import Json
 
+
 data ProgArgs = ProgArgs
-    { name  :: String
-    , url   :: String
-    , local :: Bool
-    , block :: Bool
-    , raw   :: Bool
+    { name     :: String
+    , url      :: String
+    , dnschain :: Bool
+    , block    :: Bool
+    , raw      :: Bool
     } deriving (Show)
 
+
 parser :: ParserSpec ProgArgs
 parser = ProgArgs
-    `parsedBy` reqPos   "name"  `Descr` "Namecoin name id"
+    `parsedBy` reqPos   "name"     `Descr` "Namecoin name id"
     `andBy`    optFlag   "http://dns.dnschain.net/" "url"
-                                `Descr` "Use custom dnschain API url"
-    `andBy`    boolFlag "local" `Descr` "Use local namecoind db"
-    `andBy`    boolFlag "block" `Descr` "Show blockchain data (require local connecton)"
-    `andBy`    boolFlag "raw"   `Descr` "Print raw JSON data"
+                                   `Descr` "Use custom api url"
+    `andBy`    boolFlag "dnschain" `Descr` "Use dnschain api"
+    `andBy`    boolFlag "block"    `Descr` "Show blockchain data (require local connecton)"
+    `andBy`    boolFlag "raw"      `Descr` "Print raw JSON data"
 
+
 interface :: IO (CmdLnInterface ProgArgs)
 interface =
     (`setAppDescr` "Query the namecoin blockchain") <$> 
     (`setAppEpilog` "Stat rosa pristina nomine, nomina nuda tenemus.") <$>
     mkApp parser
 
-exec :: ProgArgs -> IO ()
-exec args@ProgArgs{..} =
-    if local
-    then do
-        out <- readProcess "namecoind" ["name_show", name] ""
-        case decode (C.pack out) of
-            Just res -> do
-                putStrLn (repr value)
-                when block $ putStrLn (repr extra)
-                where
-                    value = fromJust . decode . C.pack $ res |: "value"
-                    extra = toJSON $ delete "value" res
-            Nothing  -> putStrLn "Error parsing data"
-    else do
-        req <- get (url ++ name)
-        let body = req ^. responseBody
-        if raw
-        then print body
-        else putStrLn $
-            case decode body of
-                Just res -> repr res
-                Nothing  -> "Error parsing data"
 
 main :: IO ()
 main = interface >>= flip runApp exec
+
+
+exec :: ProgArgs -> IO ()
+exec args@ProgArgs{..} =
+    if dnschain
+    then handleDnschain url name raw
+    else handleLocal name block
+
+
+handleLocal :: String -> Bool -> IO ()
+handleLocal name block = do
+    out <- readProcess "namecoind" ["name_show", name] ""
+    case decode (C.pack out) of
+        Just res -> do
+            jprint $ reparse (res |: "value")
+            if block then jprint extra else return ()
+            where
+                reparse = fromJust . decode . C.pack
+                extra   = toJSON $ delete "value" res
+        Nothing  -> putStrLn "Error parsing data"
+
+
+handleDnschain :: String -> String -> Bool -> IO ()
+handleDnschain url name raw = do
+    req <- get (url ++ name)
+    let body = req ^. responseBody
+    if raw
+    then print body
+    else putStrLn $
+        case decode body of
+            Just res -> repr res
+            Nothing  -> "Error parsing data"
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@
 
 Connect to namecoind server for blockhain data
 
-    $ rosa d/namechain -lb
+    $ rosa d/namechain -b
     ip: 83.96.168.183
     map:
       *:
diff --git a/rosa.cabal b/rosa.cabal
--- a/rosa.cabal
+++ b/rosa.cabal
@@ -1,5 +1,5 @@
 name:                rosa
-version:             0.1.1.0
+version:             0.1.2.0
 synopsis:            Query the namecoin blockchain
 description:
 
