diff --git a/HTTP/FakeUserAgent.hs b/HTTP/FakeUserAgent.hs
deleted file mode 100644
--- a/HTTP/FakeUserAgent.hs
+++ /dev/null
@@ -1,32 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-module HTTP.FakeUserAgent (getBrowserString) where
-
-import Control.Lens ((^?))
-import Data.ByteString.Lazy (ByteString, unpack)
-import Data.Char (chr)
-import Network.Wreq (get, responseBody)
-import Text.HTML.TagSoup (parseTags, innerText, Tag(TagOpen, TagClose), (~/=))
-
-getVersionsList :: [Tag ByteString] -> [Tag ByteString]
-getVersionsList tags =
-    let tags1 = (drop 1 . dropWhile (~/= TagOpen ("div" :: String) [("id", "liste")])) tags in
-        takeWhile (~/= TagClose ("div" :: String)) tags1
-
-getVersions :: [Tag ByteString] -> [ByteString] -> [ByteString]
-getVersions [] accum = reverse accum
-getVersions tags accum = 
-    let tags1 = (drop 1 . dropWhile (~/= TagOpen ("li" :: String) [])) tags
-        match = takeWhile (~/= TagClose ("li" :: String)) tags1
-        tags2 = (drop 1 . dropWhile (~/= TagClose ("li" :: String))) tags1 in
-        case match of
-            [] -> getVersions tags2 accum
-            _  -> getVersions tags2 ((innerText match):accum)
-
-getBrowserString :: String -> IO String
-getBrowserString name = do
-    resp <- get ("http://useragentstring.com/pages/" ++ name ++ "/")
-    let Just body = resp ^? responseBody
-    let tags = parseTags body
-    let versions = getVersions (getVersionsList tags) []
-    let v:_ = versions
-    return $ (map (chr . fromEnum) . unpack) v
diff --git a/HTTP/ThirdParty/FakeUserAgent.hs b/HTTP/ThirdParty/FakeUserAgent.hs
new file mode 100644
--- /dev/null
+++ b/HTTP/ThirdParty/FakeUserAgent.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE OverloadedStrings #-}
+module HTTP.ThirdParty.FakeUserAgent (getBrowserStrings, getLatestBrowserString) where
+
+import Control.Lens ((^?))
+import Data.ByteString.Lazy (ByteString, unpack)
+import Data.Char (chr)
+import Network.Wreq (get, responseBody)
+import Text.HTML.TagSoup (parseTags, innerText, Tag(TagOpen, TagClose), (~/=))
+
+getVersionsList :: [Tag ByteString] -> [Tag ByteString]
+getVersionsList tags =
+    let tags1 = (drop 1 . dropWhile (~/= TagOpen ("div" :: String) [("id", "liste")])) tags in
+        takeWhile (~/= TagClose ("div" :: String)) tags1
+
+getVersions :: [Tag ByteString] -> [ByteString] -> [ByteString]
+getVersions [] accum = reverse accum
+getVersions tags accum = 
+    let tags1 = (drop 1 . dropWhile (~/= TagOpen ("li" :: String) [])) tags
+        match = takeWhile (~/= TagClose ("li" :: String)) tags1
+        tags2 = (drop 1 . dropWhile (~/= TagClose ("li" :: String))) tags1 in
+        case match of
+            [] -> getVersions tags2 accum
+            _  -> getVersions tags2 ((innerText match):accum)
+
+getBrowserStrings :: String -> IO [String]
+getBrowserStrings name = do
+    resp <- get ("http://useragentstring.com/pages/" ++ name ++ "/")
+    let Just body = resp ^? responseBody
+    let tags = parseTags body
+    let versions = getVersions (getVersionsList tags) []
+    return $ map ((map (chr . fromEnum) . unpack)) versions
+
+getLatestBrowserString :: String -> IO String
+getLatestBrowserString name = do
+    latest:strings <- getBrowserStrings name
+    return latest
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -0,0 +1,15 @@
+FAKE USER AGENT STRING
+----------------------
+
+Very simple library downloading current user agent strings from http://useragentstring.com
+
+HOW TO USE
+----------
+
+# getBrowserStrings :: String -> IO [String]
+
+returns a list of user agent strings for a given browser, where browser may be "Chrome", "Firefox", etc. (see http://useragentstring.com for the list of browsers)
+
+# getLatestBrowserString :: String -> IO String
+
+returns a head of the above list
diff --git a/haskell-fake-user-agent.cabal b/haskell-fake-user-agent.cabal
--- a/haskell-fake-user-agent.cabal
+++ b/haskell-fake-user-agent.cabal
@@ -2,7 +2,7 @@
 -- further documentation, see http://haskell.org/cabal/users-guide/
 
 name:                haskell-fake-user-agent
-version:             0.0.1
+version:             0.0.2
 synopsis:            Simple library for retrieving current user agent strings
 -- description:         
 license:             PublicDomain
@@ -16,9 +16,9 @@
 cabal-version:       >=1.10
 
 library
-  exposed-modules:     HTTP.FakeUserAgent
+  exposed-modules:     HTTP.ThirdParty.FakeUserAgent
   -- other-modules:       
   other-extensions:    OverloadedStrings
-  build-depends:       base >=4.8 && <4.9, lens >=4.14 && <4.15, bytestring >=0.10 && <0.11, wreq >=0.4 && <0.5, tagsoup >=0.13 && <0.14
+  build-depends:       base >=4.9 && <4.10, lens >=4.14, bytestring >=0.10, wreq >=0.4, tagsoup >=0.13
   -- hs-source-dirs:      
   default-language:    Haskell2010
