diff --git a/pgdl.cabal b/pgdl.cabal
--- a/pgdl.cabal
+++ b/pgdl.cabal
@@ -1,6 +1,6 @@
 
 name:                pgdl
-version:             10.0
+version:             10.2
 license:             PublicDomain
 license-file:        LICENSE
 author:              mingchuan
@@ -17,6 +17,7 @@
 
 
 synopsis:            browse directory listing webpages and download files from them.
+tested-with:         GHC == 7.10.3, GHC == 8.0.1
 
 source-repository head
   type:     git
@@ -37,7 +38,7 @@
                        data-default,
                        tagsoup,
                        directory-listing-webpage-parser >= 0.1.1.0,
-                       brick == 0.7.*, vty, microlens,
+                       brick >= 0.10 && < 0.12, vty, microlens,
                        conduit, conduit-extra,
                        http-conduit, http-types, resourcet,
                        configurator >= 0.3,
diff --git a/src/DownloadInterface.hs b/src/DownloadInterface.hs
--- a/src/DownloadInterface.hs
+++ b/src/DownloadInterface.hs
@@ -53,7 +53,7 @@
 
 --                                 bytes already downloaded
 data DownloadState = DownloadState Integer | FinishedState
-                   | UserInput DownloadState (E.Editor String)
+                   | UserInput DownloadState (E.Editor String String)
                    --          ^ download progress
 
 data DEvent = VtyEvent V.Event
diff --git a/src/EntryAttrViewer.hs b/src/EntryAttrViewer.hs
--- a/src/EntryAttrViewer.hs
+++ b/src/EntryAttrViewer.hs
@@ -4,6 +4,7 @@
 where
 
 import Data.Text (Text)
+import Brick.Types (Widget)
 import qualified Data.Text as T
 import qualified Brick.Main as M
 import qualified Brick.Widgets.Center as C
@@ -16,7 +17,8 @@
 entryAttrViewer :: DNode -> IO ()
 entryAttrViewer (Directory entry _) = entryAttrViewer (File entry "directory no link." False)
 entryAttrViewer (File entry url downloaded) =
-    M.simpleMain . C.vCenter . C.hCenter . C.hLimit U.terminalWidth . C.txt $ info
+    M.simpleMain . C.vCenter . C.hCenter . C.hLimit U.terminalWidth $
+    (C.txt info :: Widget String)
     where
     info = T.unlines $
            zipWith (\describ s -> T.intercalate "\n" . 
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -37,7 +37,7 @@
 import qualified Utils as U
 
 data MainState = LState DList
-               | SearchState DList (E.Editor String)
+               | SearchState DList (E.Editor String String)
 
 main :: IO ()
 main = do
diff --git a/src/Networking.hs b/src/Networking.hs
--- a/src/Networking.hs
+++ b/src/Networking.hs
@@ -33,7 +33,7 @@
                       IO NetworkResource
 genNetworkResource url up = do
     let genReq :: Text -> Request
-        genReq rp = case parseUrl absPath of
+        genReq rp = case parseRequest absPath of
                         Nothing -> error $ "invalid url: " ++ absPath
                         Just r -> auth r
             where
