diff --git a/Gt/Core.hs b/Gt/Core.hs
--- a/Gt/Core.hs
+++ b/Gt/Core.hs
@@ -16,14 +16,14 @@
 do_trans sl tl str =
   do
     jresp <- get_resp sl tl str
-    return $ show $ jresp_to_resp $ jresp
+    return $ show $ jresp_to_resp jresp
 
 do_trans_each_word :: IO String
 do_trans_each_word = undefined
 
 jresp_to_resp :: String -> Resp
 jresp_to_resp jobj = foldr fill_resp br obj_list
-    where obj_list = fromJSObject $ from_ok $ (decode jobj :: Result (JSObject JSValue))
+    where obj_list = fromJSObject $ from_ok (decode jobj :: Result (JSObject JSValue))
           br = blank_resp
 
 fill_resp :: (String, JSValue) -> Resp -> Resp
@@ -44,7 +44,7 @@
     -- in the truth we need to reverse data,
     -- but currently there is only one element,
     -- so just leaving as is
-    (foldr tot (Sentence "" "" "") in_list):acc
+    foldr tot (Sentence "" "" "") in_list:acc
     where in_list = fromJSObject jobj
 jsso_to_sentence _ _ = undefined
 
@@ -67,7 +67,7 @@
     -- in the truth we need to reverse data,
     -- but currently there is only one element,
     -- so just leaving as is
-    (foldr pt (Dict "" []) in_list):acc
+    foldr pt (Dict "" []) in_list:acc
     where in_list = fromJSObject jobj
 jsdo_to_dict _ _ = undefined
 
diff --git a/Gt/Helpers.hs b/Gt/Helpers.hs
--- a/Gt/Helpers.hs
+++ b/Gt/Helpers.hs
@@ -50,5 +50,5 @@
 jstr_to_str _               = ""
 
 jlist_to_slist :: JSValue -> [String]
-jlist_to_slist (JSArray xs) = map (jstr_to_str) xs
+jlist_to_slist (JSArray xs) = map jstr_to_str xs
 jlist_to_slist _            = undefined
diff --git a/Gt/Net.hs b/Gt/Net.hs
--- a/Gt/Net.hs
+++ b/Gt/Net.hs
@@ -21,7 +21,7 @@
 get_resp :: Lang -> Lang -> String -> IO String
 get_resp sl tl str =
   do result <- simpleHTTP (getRequest $ trans_url sl tl str) >>= getResponseBody
-     return $ decodeString $ result
+     return $ decodeString result
 
 get_resp_each_word :: Lang -> Lang -> String -> IO String
 get_resp_each_word = undefined
diff --git a/Gt/Translation.hs b/Gt/Translation.hs
--- a/Gt/Translation.hs
+++ b/Gt/Translation.hs
@@ -68,9 +68,9 @@
 
 ps_resp :: Resp -> String
 ps_resp resp = shift_lines 1 $ "Source language: "
-                             ++ (src resp)
-                             ++ "\n\n" ++ (show $ sentences resp)
-                             ++ (shift_lines 0 $ show $ dicts resp)
+                             ++ src resp
+                             ++ "\n\n" ++ show (sentences resp)
+                             ++ shift_lines 0 (show $ dicts resp)
 
 blank_resp :: Resp
 blank_resp = Resp {sentences = Sentences {sent_list = []}, dicts = Dicts {dict_list = []}, src = ""}
diff --git a/Gtc/gtc.hs b/Gtc/gtc.hs
--- a/Gtc/gtc.hs
+++ b/Gtc/gtc.hs
@@ -4,6 +4,7 @@
 ) where
 
 import Gt.Core
+import Gt.Langs
 import Data.List (intercalate)
 import System.Exit
 import qualified System.Environment.UTF8 as U
@@ -11,16 +12,30 @@
 usage :: IO ()
 usage =
   do
-     putStrLn "Usage: 'fromLang' 'toLang' 'text'"
-     putStrLn "Lang is 2 sumbols code, i.e. by, en, ru."
+     mapM_ putStrLn [ "    Usage: 'fromLang' 'toLang' 'text'"
+                    , "    Lang is 2 sumbols code, i.e. by, en, ru.\n"
+                    , "        --help or -h - to see this help."
+                    , "        --list or -l - list of available languages.\n"
+                    ]
      exitWith $ ExitFailure 1
 
+langs_list :: IO ()
+langs_list = putStrLn $ "\nList of available languages:\n\n" ++
+             (concat $ zipWith (\l d -> "    " ++ l ++ " - " ++ d ++ "\n") langs langs_descrs)
+
 main :: IO ()
 main =
   do
      -- TODO: Need to detecet terminal encoding and make convertions
      args <- U.getArgs
      case args of
+
+        ["-l"]       -> langs_list
+        ["-h"]       -> usage
+
+        ["--list"]   -> langs_list
+        ["--help"]   -> usage
+
         from:to:rest -> do_trans from to (intercalate " " rest) >>= putStrLn
         _            -> usage
      exitWith ExitSuccess
diff --git a/Gtg/gtg.hs b/Gtg/gtg.hs
--- a/Gtg/gtg.hs
+++ b/Gtg/gtg.hs
@@ -41,12 +41,12 @@
     widgetShowAll window
     mainGUI
 
-get_dest_lang :: ComboBox -> IO (String)
+get_dest_lang :: ComboBox -> IO String
 get_dest_lang cmb = do
     index <- comboBoxGetActive cmb
     return $ tail langs !! index
 
-get_src_lang :: ComboBox -> IO (String)
+get_src_lang :: ComboBox -> IO String
 get_src_lang cmb = do
     index <- comboBoxGetActive cmb
     return (langs !! index)
diff --git a/gt-tools.cabal b/gt-tools.cabal
--- a/gt-tools.cabal
+++ b/gt-tools.cabal
@@ -1,5 +1,5 @@
 name:                   gt-tools
-version:                0.1.1
+version:                0.1.2
 cabal-version:          >= 1.8
 build-type:             Simple
 license:                GPL
@@ -38,7 +38,7 @@
                         HTTP,
                         json,
                         url,
-                        utf8-string
+                        utf8-string >= 0.3.6
 
 executable              gtg
     main-is:            gtg.hs
