diff --git a/Nemesis b/Nemesis
--- a/Nemesis
+++ b/Nemesis
@@ -17,6 +17,12 @@
   
   desc "start main"
   task "main" (sh "ghci -isrc -Wall src/Main.hs")
+
+  desc "start cookbook"
+  task "c" (sh "ghci -isrc -Wall src/Text/HTML/Yuuko/Cookbook.hs")
+  
+  desc "test utf8"
+  task "test-utf8" (sh "runghc -isrc src/Main.hs '//div' < test/utf8.html")
   
   desc "put all .hs files in manifest"
   task "manifest" $ do
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,10 @@
+2009.1.23
+---------
+
+### Fix
+
+* use hxt < 8.5, not enough time to upgrade
+
 2009.10.23.2
 ------------
 
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -32,6 +32,10 @@
 * [XPath](http://www.w3.org/TR/xpath)
 * [XML related libraries on Hackage](http://hackage.haskell.org/packages/archive/pkg-list.html#cat:xml)
 
-<br/>
+Who is Yuuko?
+=============
 
 ![yuuko](http://github.com/nfjinjing/yuuko/raw/master/yuuko.gif)
+
+* [Yūko Ichihara](http://en.wikipedia.org/wiki/Y%C5%ABko_Ichihara#Y.C5.ABko_Ichihara)
+* [xxxHolic](http://en.wikipedia.org/wiki/XxxHolic )
diff --git a/src/Main.hs b/src/Main.hs
deleted file mode 100644
--- a/src/Main.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Main where
-
-import Text.HTML.Yuuko
-import System
-
-main :: IO ()
-main = do
-  args <- getArgs
-  case args of
-    [] -> putStrLn "\n  usage: echo '<div>hi</div>' | yuuko //div\n"
-    expr:_ -> interact $ concatMap (++ "\n") . (yuuko expr)
diff --git a/src/Text/HTML/Yuuko.hs b/src/Text/HTML/Yuuko.hs
--- a/src/Text/HTML/Yuuko.hs
+++ b/src/Text/HTML/Yuuko.hs
@@ -4,14 +4,31 @@
 import qualified Text.XML.HXT.Arrow.XPathSimple as XS
 import System.IO.Unsafe
 
+in_html :: [(String, String)]
+in_html = [(a_parse_html, v_1)]
+
+in_xml :: [(String, String)]
+in_xml = [(a_ignore_none_xml_contents, v_1)]
+
 yuuko :: String -> String -> [String]
-yuuko = yuuko_base [(a_parse_html, v_1)]
+yuuko = yuuko_base in_html show_tree
 
 yuuko_xml :: String -> String -> [String]
-yuuko_xml = yuuko_base [(a_ignore_none_xml_contents, v_1)]
+yuuko_xml = yuuko_base in_xml show_tree
 
-yuuko_base :: [(String, String)] -> String -> String -> [String]
-yuuko_base args expr s = unsafePerformIO $
+yuuko_for_text :: String -> String -> [String]
+yuuko_for_text = yuuko_base in_html getText
+
+show_tree :: IOStateArrow () XmlTree String
+show_tree = writeDocumentToString write_args
+  where
+    write_args = 
+      [ (a_no_xml_pi, v_0)
+      , (a_output_xml, v_0)
+      ]
+
+yuuko_base :: [(String, String)] -> (IOStateArrow () XmlTree String) -> String -> String -> [String]
+yuuko_base args formatter expr s = unsafePerformIO $
   runX process
 
   where
@@ -21,13 +38,8 @@
       ]
       ++ args
     
-    write_args = 
-      [ (a_encoding, utf8)
-      , (a_no_xml_pi, v_0 )
-      ]
-      
     process =
           readString read_args s
       >>> XS.getXPathTreesInDoc expr
-      >>> writeDocumentToString write_args
+      >>> formatter
 
diff --git a/src/Text/HTML/Yuuko/Cookbook.hs b/src/Text/HTML/Yuuko/Cookbook.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/HTML/Yuuko/Cookbook.hs
@@ -0,0 +1,8 @@
+module Text.HTML.Yuuko.Cookbook where
+
+import Text.HTML.Yuuko
+
+type S = String -> [String]
+
+all_text :: S
+all_text = yuuko_for_text "descendant-or-self::text()"
diff --git a/yuuko.cabal b/yuuko.cabal
--- a/yuuko.cabal
+++ b/yuuko.cabal
@@ -1,5 +1,5 @@
 Name:                 yuuko
-Version:              2009.10.23.2
+Version:              2010.1.23
 Build-type:           Simple
 Synopsis:             A transcendental HTML parser gently wrapping the HXT library
 Description:
@@ -22,16 +22,10 @@
 homepage:             http://github.com/nfjinjing/yuuko
 data-files:           readme.md, changelog.md, known-issues.md, Nemesis
 
-Executable            yuuko
-  ghc-options:        -Wall
-  build-depends:      base >= 4 && < 5, hxt, haskell98, utf8-prelude
-  hs-source-dirs:     src/
-  main-is:            Main.hs
-  other-modules:      Text.HTML.Yuuko
-
 library
   ghc-options: -Wall
-  build-depends: base >= 4 && < 5, hxt
+  build-depends: base >= 4 && < 5, hxt >= 8.3.2.3 && < 8.5
   hs-source-dirs: src/
   exposed-modules:  
                       Text.HTML.Yuuko
+                      Text.HTML.Yuuko.Cookbook
