diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,4 +1,11 @@
 
+20161009 phoityne-vscode-0.0.10.0
+  * [MODIFY] REPL結果をイベントで返すように変更した。EvaluateResponseで返した場合は、複数行表示ができないため。 
+  * [MODIFY] REPLにおいて、複数行の入力に対応した。 
+  * [MODIFY] REPLにおいて、デバッグ関連のコマンドを実行しないように変更した。 
+  * [FIX] バインディング変数情報の取得において、複数行にまたがる情報のパースが失敗していた箇所を修正した。 
+
+
 20160919 phoityne-vscode-0.0.9.0
   * [ADD] ConfigurationDoneRequestに対応した。
   * [ADD] CompletionsRequestに対応した。
@@ -6,23 +13,28 @@
   * [MODIFY] Hover時のforce実行を止めた。
   * [FIX] setBreakpointsResponse, setFunctionBreakpointsResponseのBodyデータにおいて、キー名を修正した。
 
+
 20160804 phoityne-vscode-0.0.8.0
   * [MODIFY] モジュール構成の変更。
   * [MODIFY] debugger adopter interface Capabilitiesの変更に対応した。
 
+
 20160704 phoityne-vscode-0.0.7.0
   * [MODIFY] debugger adopter interface Capabilitiesの変更に対応した。
   * [MODIFY] debugger adopter interface StackFrameの変更に対応した。(endLin, endColumnの追加)
   * [MODIFY] debugger adopter interface Variableの変更に対応した。(typeの追加)
   
+
 20160626 phoityne-vscode-0.0.6.0
 
   * [MODIFY] launchリクエストのghciCmdパラメータで指定したghci起動コマンドを使用するように変更した。
   * [MODIFY] ghciの起動に失敗した場合、デバッグを終了するように修正した。
 
+
 20160605 phoityne-vscode-0.0.5.0
 
   * [MODIFY] launchリクエストのnoDebugパラメータをMaybeに変更した。
+
 
 20160601 phoityne-vscode-0.0.4.0
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -7,34 +7,14 @@
 
 ## Information
 
-* [2016/09/19] phoityne-vscode released.  
-  for VSCode-1.5, updated vscode extension and haskell library. Please use new versions.
-  * Marketplace [phoityne-vscode-0.0.7](https://marketplace.visualstudio.com/items?itemName=phoityne.phoityne-vscode)
-  * hackage [phoityne-vscode-0.0.9.0](https://hackage.haskell.org/package/phoityne-vscode)  
+* [2016/10/09] phoityne-vscode released.  
+  * Marketplace [phoityne-vscode-0.0.8](https://marketplace.visualstudio.com/items?itemName=phoityne.phoityne-vscode)
+  * hackage [phoityne-vscode-0.0.10.0](https://hackage.haskell.org/package/phoityne-vscode)  
 * Release Summary
-  * Implemented the completions request to provide suggestion proposals for ghci repl in the Debug Console. 
-  * Some improvements and bug fixes.
-
-
-## Debug on VSCode
-
-1. Start VSCode
-2. Open stack project folder
-3. Open debug view
-4. Open launch.json
-5. Set startup source file. Default file is test/Spec.hs
-6. Run debug(F5)
-
-[![Demo Video1](https://raw.githubusercontent.com/phoityne/docs/master/demo01.gif)](https://raw.githubusercontent.com/phoityne/docs/master/demo01.gif)
+  * Improvements of repl function. And some bug fixes.
 
 
-## Key Bindings
-
-* F5 : start debug
-* F6 : show command menu (for stack watch)
-* Shift + F6 : stop stack watch
-* F7 : stack clean & build
-* F8 : stack test
+![01_debug.gif](https://raw.githubusercontent.com/phoityne/phoityne-vscode/master/docs/01_debug.gif)
 
 
 ## Important
@@ -42,6 +22,11 @@
 * Breakpoint can be set in a .hs file which defineds "module ... where".
 * Source file extension must be ".hs"
 * When you start debugging for the first time, .vscode/tasks.json will be created automatically. Then you can use F6, F7, F8 shortcut key.
+  * F5 : start debug
+  * F6 : show command menu (for stack watch)
+  * Shift + F6 : stop stack watch
+  * F7 : stack clean & build
+  * F8 : stack test
 
 
 ## Install
@@ -63,10 +48,40 @@
 
 ### Install vscode extensions
 
-1. ctrlr + p on Visual Studio Code
-2. ext install haskell ... 
+1. open Extensions from side menu of VSCode.
+2. search "haskell" 
 3. select "[Haskell GHCi debug viewer Phoityne](https://marketplace.visualstudio.com/items?itemName=phoityne.phoityne-vscode)"
 
+  
+  
+## Features
+
+### Run to Cursor
+
+![03_run_to_cursor.gif](https://raw.githubusercontent.com/phoityne/phoityne-vscode/master/docs/03_run_to_cursor.gif)
+
+
+### Bindings & Watch
+
+The variable added to watch will be forced.
+
+![02_watch.gif](https://raw.githubusercontent.com/phoityne/phoityne-vscode/master/docs/02_watch.gif)
+
+
+### Stack trace
+
+![05_stacktrace.gif](https://raw.githubusercontent.com/phoityne/phoityne-vscode/master/docs/05_stacktrace.gif)
+
+
+### Break condition
+
+![04_condition.gif](https://raw.githubusercontent.com/phoityne/phoityne-vscode/master/docs/04_condition.gif)
+
+
+### Repl & Completions
+
+![06_repl.gif](https://raw.githubusercontent.com/phoityne/phoityne-vscode/master/docs/06_repl.gif)
+
 ## Capabilites
 
 * supportsConfigurationDoneRequest : yes
@@ -105,6 +120,10 @@
 
 
 ## Version history
+
+* [2016/09/19] for VSCode-1.5, updated vscode extension and haskell library. Please use new versions.
+  * Marketplace [phoityne-vscode-0.0.7](https://marketplace.visualstudio.com/items?itemName=phoityne.phoityne-vscode)
+  * hackage [phoityne-vscode-0.0.9.0](https://hackage.haskell.org/package/phoityne-vscode)  
 
 * [2016/08/07] for VSCode-1.4, updated vscode extension and haskell library. Please use new versions.
   * Marketplace [phoityne-vscode-0.0.6](https://marketplace.visualstudio.com/items?itemName=phoityne.phoityne-vscode)
diff --git a/app/Phoityne/GHCi/IO/Command.hs b/app/Phoityne/GHCi/IO/Command.hs
--- a/app/Phoityne/GHCi/IO/Command.hs
+++ b/app/Phoityne/GHCi/IO/Command.hs
@@ -5,7 +5,10 @@
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE DeriveDataTypeable  #-}
+{-# LANGUAGE FlexibleContexts    #-}
+ 
 
+
 module Phoityne.GHCi.IO.Command (
     SourcePosition(..)
   , StackFrame(..)
@@ -123,14 +126,22 @@
     withProcess (Right ghci) = readCharWhile ghci (not.endOfStartMsg) >>= setupGHCi ghci
 
     setupGHCi _  (Left err) = return $ Left err
-    setupGHCi ghci@(GHCiProcess _ _ _ _ pmt) (Right msg) = do
+    setupGHCi ghci (Right msg) = do
       outHdl msg
-      set ghci outHdl ("prompt \"" ++ pmt ++ "\"") >>= \case
-        Left err -> return $ Left err
-        Right _  -> set ghci outHdl "-fprint-evld-with-show" >>= \case
-          Left err -> return $ Left err
-          Right _  -> return $ Right ghci
+      setPrompt ghci
 
+    setPrompt ghci@(GHCiProcess _ _ _ _ pmt) = set ghci outHdl ("prompt \"" ++ pmt ++ "\"") >>= \case
+      Left err -> return $ Left err
+      Right _  -> setPrompt2 ghci
+
+    setPrompt2 ghci@(GHCiProcess _ _ _ _ pmt) = set ghci outHdl ("prompt2 \"" ++ pmt ++ "\"") >>= \case
+      Left err -> return $ Left err
+      Right _  -> setPrintEval ghci
+
+    setPrintEval ghci = set ghci outHdl "-fprint-evld-with-show" >>= \case
+      Left err -> return $ Left err
+      Right _  -> return $ Right ghci
+
     endOfStartMsg msg
       | U.endswith _GHCI_PROMPT msg = True
       | endOfModLoadPrompt (last (lines msg)) = True
@@ -351,7 +362,10 @@
   let cmd = ":show bindings"
   exec ghci outHdl cmd >>= \case
     Left err  -> return $ Left err
-    Right msg -> return $ extractBindingBindingDatas msg
+    Right msg -> do
+      let msgs = lines msg
+      if 1 == length msgs then return $ Right []
+        else return $ extractBindingBindingDatas $ unlines $ init $ msgs
 
 
 -- |
@@ -573,21 +587,31 @@
 --    it :: [String] = []
 --    Phoityne>>=
 --
-extractBindingBindingDatas :: String -> (Either ErrorData [BindingData]) 
-extractBindingBindingDatas src = case parse bindingBindingDatasParser "extractBindingBindingDatas" (normalizeConsoleOut src) of
-  Right vals -> Right vals
+extractBindingBindingDatas :: String -> Either ErrorData [BindingData] 
+extractBindingBindingDatas src = case parse bindingBindingDatasParser "extractBindingBindingDatas" src of
+  Right vals -> Right . reverse $ vals
   Left err   -> Left $ show err ++ " [INPUT]" ++ src
 
   where
-    bindingBindingDatasParser = manyTill bindingBindingDataParser eof
+    bindingBindingDatasParser = do
+      varName <- manyTill anyChar (try (string " :: "))
+      bindingBindingDatasParser' (U.strip varName) []
 
-    bindingBindingDataParser = do
-      varName <- manyTill anyChar (string " :: ")
+    bindingBindingDatasParser' varName acc = do
       typeName <- manyTill anyChar (try (string " = "))
-      valStr  <- try (manyTill anyChar space) <|> try (manyTill anyChar eof)
-      return $ BindingData (U.strip varName) (U.strip typeName) (U.strip valStr)
+      try (hasMore varName  (U.strip typeName) acc) <|> lastItem  varName  (U.strip typeName) acc
 
+    hasMore varName typeName acc = do
+      str <- manyTill anyChar (try (string " :: "))
+      let strs = lines str
+      if 1 == length strs then return $ BindingData varName typeName (U.strip str) : acc
+        else bindingBindingDatasParser' (U.strip (last strs))
+          $ BindingData varName typeName (U.strip (U.join " " (init strs))) : acc
 
+    lastItem varName typeName acc = do
+      valStr <- manyTill anyChar eof
+      return $ BindingData varName typeName (U.strip valStr) : acc
+
 -- |
 --
 normalizeConsoleOut :: String -> String
@@ -601,12 +625,12 @@
 --      <interactive>:1:1: error: Not in scope: â€˜xxâ€™
 --    Phoityne>>=
 --
-extractErrorResult :: String -> (Either ErrorData String) 
+extractErrorResult :: String -> Either ErrorData String 
 extractErrorResult str = case parse errorResultParser "extractErrorResult" str of
   Right errMsg -> Left errMsg
-  Left  _      -> Right $ str
+  Left  _      -> Right str
   where
     errorResultParser = do
-      _ <- manyTill anyChar (string "<interactive>")
+      _ <- manyTill anyChar (try (string "<interactive>"))
       _ <- manyTill anyChar (char ' ')
       manyTill anyChar eof
diff --git a/app/Phoityne/VSCode/IO/Core.hs b/app/Phoityne/VSCode/IO/Core.hs
--- a/app/Phoityne/VSCode/IO/Core.hs
+++ b/app/Phoityne/VSCode/IO/Core.hs
@@ -1214,16 +1214,65 @@
         evaluateResponse err ""
       Right typeStr -> evaluateResponse typeStr (getOnlyType typeStr)
 
-    withProcess _ exp (Just ghciProc) = G.exec ghciProc outHdl exp >>= \case
-      Left err   -> do
+    withProcess _ exp (Just ghciProc) 
+      | null (U.strip exp) = do
+         evaluateResponse "" ""
+         sendStdoutEvent mvarCtx (G.promptGHCiProcess ghciProc)
+      | otherwise = replHandler ghciProc $ map U.rstrip (lines exp)
+      
+    replHandler _ [] = do
+      errorM _LOG_NAME "[replHandler] invalid inputs."
+      evaluateResponse "" ""
+    
+    replHandler ghciProc (exp:[]) 
+      | isPermitCmd (U.strip exp) = G.exec ghciProc outHdl exp >>= \case
+          Left err ->  do
+            errorM _LOG_NAME $ show err
+            evaluateResponse "" ""
+            sendErrorEvent mvarCtx $ (G.promptGHCiProcess ghciProc) ++ exp ++ "\n" ++ show err
+            sendStdoutEvent mvarCtx $ G.promptGHCiProcess ghciProc
+          Right cmdStr -> do
+            evaluateResponse "" ""
+            sendStdoutEvent mvarCtx $ (G.promptGHCiProcess ghciProc) ++ exp ++ "\n" ++ cmdStr
+            infoM _LOG_NAME $ (G.promptGHCiProcess ghciProc) ++ exp ++ "\n" ++ cmdStr
+      | otherwise = do
+          evaluateResponse "" ""
+          sendErrorEvent mvarCtx $ (G.promptGHCiProcess ghciProc) ++ exp ++ "\n can not use these commands.\n"  ++ show notPermit ++ "\n"
+          sendStdoutEvent mvarCtx $ G.promptGHCiProcess ghciProc
+          infoM _LOG_NAME $ (G.promptGHCiProcess ghciProc) ++ exp ++ "\n can not use these commands.\n"  ++ show notPermit ++ "\n" 
+
+    replHandler ghciProc exps = G.exec ghciProc outHdl ":{" >>= \case
+      Left err ->  do
         errorM _LOG_NAME $ show err
-        sendErrorEvent mvarCtx $ show err
+        evaluateResponse "" ""
+        sendErrorEvent mvarCtx $ (G.promptGHCiProcess ghciProc) ++ ":{\n" ++ show err
+      Right cmdStr -> replsHandler ghciProc (exps ++ [":}"]) $ (G.promptGHCiProcess ghciProc) ++ ":{\n" ++ cmdStr
+    
+    replsHandler _ [] acc = do
+      evaluateResponse "" ""
+      sendStdoutEvent mvarCtx acc
+      infoM _LOG_NAME acc
 
-      Right cmdStr -> do
-        -- promptを消す
-        let result = U.join " " . map U.strip . init . lines $ cmdStr
-        evaluateResponse result ""
-        sendStdoutEvent mvarCtx $ "\n" ++ G.promptGHCiProcess ghciProc
+    replsHandler ghciProc (x:xs) acc 
+      | isPermitCmd (U.strip x) = G.exec ghciProc outHdl x >>= \case
+          Left err -> do
+            evaluateResponse "" ""
+            sendErrorEvent mvarCtx $ acc ++ x ++ "\n" ++ show err
+            sendStdoutEvent mvarCtx $ G.promptGHCiProcess ghciProc
+            errorM _LOG_NAME $ acc ++ x ++ "\n" ++ show err
+
+          Right cmdStr -> replsHandler ghciProc xs $ acc ++ x ++ "\n" ++ cmdStr
+      | otherwise = do
+          evaluateResponse "" ""
+          sendErrorEvent mvarCtx $ acc ++ x ++ "\n can not use these commands.\n"  ++ show notPermit ++ "\n"
+          sendStdoutEvent mvarCtx $ G.promptGHCiProcess ghciProc
+          infoM _LOG_NAME $ acc ++ x ++ "\n can not use these commands.\n"  ++ show notPermit ++ "\n"
+
+    isPermitCmd c = 0 == (length ( filter (flip U.startswith c) notPermit))
+
+    notPermit = [":{", ":abandon", ":back", ":break", ":continue", ":delete", ":force", ":forward"
+              ,  ":history", ":list", ":print", ":sprint", ":step", ":steplocal", ":stepmodule", ":trace"
+              ]
 
     outHdl msg = do
       --sendStdoutEvent mvarCtx msg
diff --git a/phoityne-vscode.cabal b/phoityne-vscode.cabal
--- a/phoityne-vscode.cabal
+++ b/phoityne-vscode.cabal
@@ -1,12 +1,13 @@
 name:                  phoityne-vscode
-version:               0.0.9.0
+version:               0.0.10.0
 synopsis:              ghci debug viewer on Visual Studio Code
 description:           Please see README.md
 license:               BSD3
 license-file:          LICENSE
 author:                phoityne_hs
 maintainer:            phoityne.hs@gmail.com
-homepage:              https://sites.google.com/site/phoityne/vscode
+homepage:              https://github.com/phoityne/phoityne-vscode
+bug-reports:           https://github.com/phoityne/phoityne-vscode/issues
 copyright:             2016 phoityne_hs
 category:              Development
 build-type:            Simple
