diff --git a/maid.cabal b/maid.cabal
--- a/maid.cabal
+++ b/maid.cabal
@@ -1,5 +1,5 @@
 Name:                 maid
-Version:              2009.12.20
+Version:              2010.4.24
 Build-type:           Simple
 Synopsis:             A simple static web server
 Description:
@@ -8,16 +8,24 @@
 
 License:              BSD3
 License-file:         LICENSE
-Author:               Wang, Jinjing
-Maintainer:           Wang, Jinjing <nfjinjing@gmail.com>
+Author:               Jinjing Wang
+Maintainer:           Jinjing Wang <nfjinjing@gmail.com>
 Build-Depends:        base
 Cabal-version:        >= 1.2
 category:             Web
-homepage:             http://github.com/nfjinjing/maid/tree/master
+homepage:             http://github.com/nfjinjing/maid
 data-files:           readme.md, changelog.md, known-issues.md, Nemesis
 
 Executable            maid
   ghc-options:        -Wall -threaded
-  build-depends:      base >= 4 && < 5, mps >= 2009.11.7, loli >= 2009.8.18, haskell98, hack-contrib >= 2009.12.20, data-default, hack-handler-happstack >= 2009.12.20, hack
+  build-depends:      base >= 4 && < 5
+                    , mps >= 2010.1.26
+                    , loli >= 2009.8.18
+                    , haskell98
+                    , hack-contrib >= 2010.1.26
+                    , data-default
+                    , hack-handler-hyena >= 2009.12.20
+                    , hack
+                    , containers
   hs-source-dirs:     src/
   main-is:            maid.hs
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -24,3 +24,5 @@
 ----
 
 use the git version
+
+![maid](http://github.com/nfjinjing/maid/raw/master/maid.jpg)
diff --git a/src/maid.hs b/src/maid.hs
--- a/src/maid.hs
+++ b/src/maid.hs
@@ -2,14 +2,14 @@
 {-# LANGUAGE NamedFieldPuns #-}
 
 import Network.Loli (loli, public, mime)
-import Hack.Handler.Happstack
+import Hack.Handler.Hyena
 import System (getArgs)
-import MPS.TH (here)
-import MPS ((>), splash, tuple2, reject, strip, (/), (-))
+import MPS (splash, (/), (-))
 import Data.Default (def)
-import Hack.Contrib.Middleware.SimpleAccessLogger
+import Hack.Contrib.Mime
 import Hack
 import Prelude hiding ((/), (-), (>))
+import Data.Map (toAscList)
 
 main :: IO ()
 main = do
@@ -21,9 +21,9 @@
     }
   
   let { app =
-    simple_access_logger Nothing - try_index - loli - do
+    try_index - loli - do
       public (Just ".") [""]
-      mapM_ (splash mime) mimes
+      mapM_ (splash mime) (toAscList mime_types)
     }
 
   putStrLn ""
@@ -48,664 +48,4 @@
               return r'
         else
           return r
-
   
-mimes :: [(String, String)]
-mimes = 
-    lines 
-  > map strip
-  > reject null
-  > map (words > tuple2)
-  - mime_data
-
-mime_data :: String
-mime_data = [$here|
-
-3dm     x-world/x-3dmf
-3dmf    x-world/x-3dmf
-a       application/octet-stream
-aab     application/x-authorware-bin
-aam     application/x-authorware-map
-aas     application/x-authorware-seg
-abc     text/vnd.abc
-acgi    text/html
-afl     video/animaflex
-ai      application/postscript
-aif     audio/aiff
-aif     audio/x-aiff
-aifc    audio/aiff
-aifc    audio/x-aiff
-aiff    audio/aiff
-aiff    audio/x-aiff
-aim     application/x-aim
-aip     text/x-audiosoft-intra
-ani     application/x-navi-animation
-aos     application/x-nokia-9000-communicator-add-on-software
-aps     application/mime
-arc     application/octet-stream
-arj     application/arj
-arj     application/octet-stream
-art     image/x-jg
-asf     video/x-ms-asf
-asm     text/x-asm
-asp     text/asp
-asx     application/x-mplayer2
-asx     video/x-ms-asf
-asx     video/x-ms-asf-plugin
-au      audio/basic
-au      audio/x-au
-avi     application/x-troff-msvideo
-avi     video/avi
-avi     video/msvideo
-avi     video/x-msvideo
-avs     video/avs-video
-bcpio   application/x-bcpio
-bin     application/mac-binary
-bin     application/macbinary
-bin     application/octet-stream
-bin     application/x-binary
-bin     application/x-macbinary
-bm      image/bmp
-bmp     image/bmp
-bmp     image/x-windows-bmp
-boo     application/book
-book    application/book
-boz     application/x-bzip2
-bsh     application/x-bsh
-bz      application/x-bzip
-bz2     application/x-bzip2
-c       text/plain
-c       text/x-c
-c++     text/plain
-cat     application/vnd.ms-pki.seccat
-cc      text/plain
-cc      text/x-c
-ccad    application/clariscad
-cco     application/x-cocoa
-cdf     application/cdf
-cdf     application/x-cdf
-cdf     application/x-netcdf
-cer     application/pkix-cert
-cer     application/x-x509-ca-cert
-cha     application/x-chat
-chat    application/x-chat
-class   application/java
-class   application/java-byte-code
-class   application/x-java-class
-com     application/octet-stream
-com     text/plain
-conf    text/plain
-cpio    application/x-cpio
-cpp     text/x-c
-cpt     application/mac-compactpro
-cpt     application/x-compactpro
-cpt     application/x-cpt
-crl     application/pkcs-crl
-crl     application/pkix-crl
-crt     application/pkix-cert
-crt     application/x-x509-ca-cert
-crt     application/x-x509-user-cert
-csh     application/x-csh
-csh     text/x-script.csh
-css     text/css
-css     application/x-pointplus
-cxx     text/plain
-dcr     application/x-director
-deepv   application/x-deepv
-def     text/plain
-der     application/x-x509-ca-cert
-dif     video/x-dv
-dir     application/x-director
-dl      video/dl
-dl      video/x-dl
-doc     application/msword
-dot     application/msword
-dp      application/commonground
-drw     application/drafting
-dump    application/octet-stream
-dv      video/x-dv
-dvi     application/x-dvi
-dwf     drawing/x-dwf (old)
-dwf     model/vnd.dwf
-dwg     application/acad
-dwg     image/vnd.dwg
-dwg     image/x-dwg
-dxf     application/dxf
-dxf     image/vnd.dwg
-dxf     image/x-dwg
-dxr     application/x-director
-el      text/x-script.elisp
-elc     application/x-bytecode.elisp (compiled elisp)
-elc     application/x-elc
-env     application/x-envoy
-eps     application/postscript
-es      application/x-esrehber
-etx     text/x-setext
-evy     application/envoy
-evy     application/x-envoy
-exe     application/octet-stream
-f       text/plain
-f       text/x-fortran
-f77     text/x-fortran
-f90     text/plain
-f90     text/x-fortran
-fdf     application/vnd.fdf
-fif     application/fractals
-fif     image/fif
-fli     video/fli
-fli     video/x-fli
-flo     image/florian
-flx     text/vnd.fmi.flexstor
-fmf     video/x-atomic3d-feature
-for     text/plain
-for     text/x-fortran
-fpx     image/vnd.fpx
-fpx     image/vnd.net-fpx
-frl     application/freeloader
-funk    audio/make
-g       text/plain
-g3      image/g3fax
-gif     image/gif
-gl      video/gl
-gl      video/x-gl
-gsd     audio/x-gsm
-gsm     audio/x-gsm
-gsp     application/x-gsp
-gss     application/x-gss
-gtar    application/x-gtar
-gz      application/x-compressed
-gz      application/x-gzip
-gzip    application/x-gzip
-gzip    multipart/x-gzip
-h       text/plain
-h       text/x-h
-hdf     application/x-hdf
-help    application/x-helpfile
-hgl     application/vnd.hp-hpgl
-hh      text/plain
-hh      text/x-h
-hlb     text/x-script
-hlp     application/hlp
-hlp     application/x-helpfile
-hlp     application/x-winhelp
-hpg     application/vnd.hp-hpgl
-hpgl    application/vnd.hp-hpgl
-hqx     application/binhex
-hqx     application/binhex4
-hqx     application/mac-binhex
-hqx     application/mac-binhex40
-hqx     application/x-binhex40
-hqx     application/x-mac-binhex40
-hta     application/hta
-htc     text/x-component
-htm     text/html
-html    text/html
-htmls   text/html
-htt     text/webviewhtml
-htx     text/html
-ice     x-conference/x-cooltalk
-ico     image/x-icon
-idc     text/plain
-ief     image/ief
-iefs    image/ief
-iges    application/iges
-iges    model/iges
-igs     application/iges
-igs     model/iges
-ima     application/x-ima
-imap    application/x-httpd-imap
-inf     application/inf
-ins     application/x-internett-signup
-ip      application/x-ip2
-isu     video/x-isvideo
-it      audio/it
-iv      application/x-inventor
-ivr     i-world/i-vrml
-ivy     application/x-livescreen
-jam     audio/x-jam
-jav     text/plain
-jav     text/x-java-source
-java    text/plain
-java    text/x-java-source
-jcm     application/x-java-commerce
-jfif    image/jpeg
-jfif    image/pjpeg
-jfif-tbnl       image/jpeg
-jpe     image/jpeg
-jpe     image/pjpeg
-jpeg    image/jpeg
-jpeg    image/pjpeg
-jpg     image/jpeg
-jpg     image/pjpeg
-jps     image/x-jps
-js      application/x-javascript
-js      application/javascript
-js      application/ecmascript
-js      text/javascript
-js      text/ecmascript
-jut     image/jutvision
-kar     audio/midi
-kar     music/x-karaoke
-ksh     application/x-ksh
-ksh     text/x-script.ksh
-la      audio/nspaudio
-la      audio/x-nspaudio
-lam     audio/x-liveaudio
-latex   application/x-latex
-lha     application/lha
-lha     application/octet-stream
-lha     application/x-lha
-lhx     application/octet-stream
-list    text/plain
-lma     audio/nspaudio
-lma     audio/x-nspaudio
-log     text/plain
-lsp     application/x-lisp
-lsp     text/x-script.lisp
-lst     text/plain
-lsx     text/x-la-asf
-ltx     application/x-latex
-lzh     application/octet-stream
-lzh     application/x-lzh
-lzx     application/lzx
-lzx     application/octet-stream
-lzx     application/x-lzx
-m       text/plain
-m       text/x-m
-m1v     video/mpeg
-m2a     audio/mpeg
-m2v     video/mpeg
-m3u     audio/x-mpequrl
-man     application/x-troff-man
-map     application/x-navimap
-mar     text/plain
-mbd     application/mbedlet
-mc$     application/x-magic-cap-package-1.0
-mcd     application/mcad
-mcd     application/x-mathcad
-mcf     image/vasa
-mcf     text/mcf
-mcp     application/netmc
-me      application/x-troff-me
-mht     message/rfc822
-mhtml   message/rfc822
-mid     application/x-midi
-mid     audio/midi
-mid     audio/x-mid
-mid     audio/x-midi
-mid     music/crescendo
-mid     x-music/x-midi
-midi    application/x-midi
-midi    audio/midi
-midi    audio/x-mid
-midi    audio/x-midi
-midi    music/crescendo
-midi    x-music/x-midi
-mif     application/x-frame
-mif     application/x-mif
-mime    message/rfc822
-mime    www/mime
-mjf     audio/x-vnd.audioexplosion.mjuicemediafile
-mjpg    video/x-motion-jpeg
-mm      application/base64
-mm      application/x-meme
-mme     application/base64
-mod     audio/mod
-mod     audio/x-mod
-moov    video/quicktime
-mov     video/quicktime
-movie   video/x-sgi-movie
-mp2     audio/mpeg
-mp2     audio/x-mpeg
-mp2     video/mpeg
-mp2     video/x-mpeg
-mp2     video/x-mpeq2a
-mp3     audio/mpeg3
-mp3     audio/x-mpeg-3
-mp3     video/mpeg
-mp3     video/x-mpeg
-mpa     audio/mpeg
-mpa     video/mpeg
-mpc     application/x-project
-mpe     video/mpeg
-mpeg    video/mpeg
-mpg     audio/mpeg
-mpg     video/mpeg
-mpga    audio/mpeg
-mpp     application/vnd.ms-project
-mpt     application/x-project
-mpv     application/x-project
-mpx     application/x-project
-mrc     application/marc
-ms      application/x-troff-ms
-mv      video/x-sgi-movie
-my      audio/make
-mzz     application/x-vnd.audioexplosion.mzz
-nap     image/naplps
-naplps  image/naplps
-nc      application/x-netcdf
-ncm     application/vnd.nokia.configuration-message
-nif     image/x-niff
-niff    image/x-niff
-nix     application/x-mix-transfer
-nsc     application/x-conference
-nvd     application/x-navidoc
-o       application/octet-stream
-oda     application/oda
-omc     application/x-omc
-omcd    application/x-omcdatamaker
-omcr    application/x-omcregerator
-p       text/x-pascal
-p10     application/pkcs10
-p10     application/x-pkcs10
-p12     application/pkcs-12
-p12     application/x-pkcs12
-p7a     application/x-pkcs7-signature
-p7c     application/pkcs7-mime
-p7c     application/x-pkcs7-mime
-p7m     application/pkcs7-mime
-p7m     application/x-pkcs7-mime
-p7r     application/x-pkcs7-certreqresp
-p7s     application/pkcs7-signature
-part    application/pro_eng
-pas     text/pascal
-pbm     image/x-portable-bitmap
-pcl     application/vnd.hp-pcl
-pcl     application/x-pcl
-pct     image/x-pict
-pcx     image/x-pcx
-pdb     chemical/x-pdb
-pdf     application/pdf
-pfunk   audio/make
-pfunk   audio/make.my.funk
-pgm     image/x-portable-graymap
-pgm     image/x-portable-greymap
-pic     image/pict
-pict    image/pict
-pkg     application/x-newton-compatible-pkg
-pko     application/vnd.ms-pki.pko
-pl      text/plain
-pl      text/x-script.perl
-plx     application/x-pixclscript
-pm      image/x-xpixmap
-pm      text/x-script.perl-module
-pm4     application/x-pagemaker
-pm5     application/x-pagemaker
-png     image/png
-pnm     application/x-portable-anymap
-pnm     image/x-portable-anymap
-pot     application/mspowerpoint
-pot     application/vnd.ms-powerpoint
-pov     model/x-pov
-ppa     application/vnd.ms-powerpoint
-ppm     image/x-portable-pixmap
-pps     application/mspowerpoint
-pps     application/vnd.ms-powerpoint
-ppt     application/mspowerpoint
-ppt     application/powerpoint
-ppt     application/vnd.ms-powerpoint
-ppt     application/x-mspowerpoint
-ppz     application/mspowerpoint
-pre     application/x-freelance
-prt     application/pro_eng
-ps      application/postscript
-psd     application/octet-stream
-pvu     paleovu/x-pv
-pwz     application/vnd.ms-powerpoint
-py      text/x-script.phyton
-pyc     applicaiton/x-bytecode.python
-qcp     audio/vnd.qcelp
-qd3     x-world/x-3dmf
-qd3d    x-world/x-3dmf
-qif     image/x-quicktime
-qt      video/quicktime
-qtc     video/x-qtc
-qti     image/x-quicktime
-qtif    image/x-quicktime
-ra      audio/x-pn-realaudio
-ra      audio/x-pn-realaudio-plugin
-ra      audio/x-realaudio
-ram     audio/x-pn-realaudio
-ras     application/x-cmu-raster
-ras     image/cmu-raster
-ras     image/x-cmu-raster
-rast    image/cmu-raster
-rexx    text/x-script.rexx
-rf      image/vnd.rn-realflash
-rgb     image/x-rgb
-rm      application/vnd.rn-realmedia
-rm      audio/x-pn-realaudio
-rmi     audio/mid
-rmm     audio/x-pn-realaudio
-rmp     audio/x-pn-realaudio
-rmp     audio/x-pn-realaudio-plugin
-rng     application/ringing-tones
-rng     application/vnd.nokia.ringing-tone
-rnx     application/vnd.rn-realplayer
-roff    application/x-troff
-rp      image/vnd.rn-realpix
-rpm     audio/x-pn-realaudio-plugin
-rt      text/richtext
-rt      text/vnd.rn-realtext
-rtf     application/rtf
-rtf     application/x-rtf
-rtf     text/richtext
-rtx     application/rtf
-rtx     text/richtext
-rv      video/vnd.rn-realvideo
-s       text/x-asm
-s3m     audio/s3m
-saveme  application/octet-stream
-sbk     application/x-tbook
-scm     application/x-lotusscreencam
-scm     text/x-script.guile
-scm     text/x-script.scheme
-scm     video/x-scm
-sdml    text/plain
-sdp     application/sdp
-sdp     application/x-sdp
-sdr     application/sounder
-sea     application/sea
-sea     application/x-sea
-set     application/set
-sgm     text/sgml
-sgm     text/x-sgml
-sgml    text/sgml
-sgml    text/x-sgml
-sh      application/x-bsh
-sh      application/x-sh
-sh      application/x-shar
-sh      text/x-script.sh
-shar    application/x-bsh
-shar    application/x-shar
-shtml   text/html
-shtml   text/x-server-parsed-html
-sid     audio/x-psid
-sit     application/x-sit
-sit     application/x-stuffit
-skd     application/x-koan
-skm     application/x-koan
-skp     application/x-koan
-skt     application/x-koan
-sl      application/x-seelogo
-smi     application/smil
-smil    application/smil
-snd     audio/basic
-snd     audio/x-adpcm
-sol     application/solids
-spc     application/x-pkcs7-certificates
-spc     text/x-speech
-spl     application/futuresplash
-spr     application/x-sprite
-sprite  application/x-sprite
-src     application/x-wais-source
-ssi     text/x-server-parsed-html
-ssm     application/streamingmedia
-sst     application/vnd.ms-pki.certstore
-step    application/step
-stl     application/sla
-stl     application/vnd.ms-pki.stl
-stl     application/x-navistyle
-stp     application/step
-sv4cpio         application/x-sv4cpio
-sv4crc  application/x-sv4crc
-svf     image/vnd.dwg
-svf     image/x-dwg
-svr     application/x-world
-svr     x-world/x-svr
-swf     application/x-shockwave-flash
-t       application/x-troff
-talk    text/x-speech
-tar     application/x-tar
-tbk     application/toolbook
-tbk     application/x-tbook
-tcl     application/x-tcl
-tcl     text/x-script.tcl
-tcsh    text/x-script.tcsh
-tex     application/x-tex
-texi    application/x-texinfo
-texinfo         application/x-texinfo
-text    application/plain
-text    text/plain
-tgz     application/gnutar
-tgz     application/x-compressed
-tif     image/tiff
-tif     image/x-tiff
-tiff    image/tiff
-tiff    image/x-tiff
-tr      application/x-troff
-tsi     audio/tsp-audio
-tsp     application/dsptype
-tsp     audio/tsplayer
-tsv     text/tab-separated-values
-turbot  image/florian
-txt     text/plain
-uil     text/x-uil
-uni     text/uri-list
-unis    text/uri-list
-unv     application/i-deas
-uri     text/uri-list
-uris    text/uri-list
-ustar   application/x-ustar
-ustar   multipart/x-ustar
-uu      application/octet-stream
-uu      text/x-uuencode
-uue     text/x-uuencode
-vcd     application/x-cdlink
-vcs     text/x-vcalendar
-vda     application/vda
-vdo     video/vdo
-vew     application/groupwise
-viv     video/vivo
-viv     video/vnd.vivo
-vivo    video/vivo
-vivo    video/vnd.vivo
-vmd     application/vocaltec-media-desc
-vmf     application/vocaltec-media-file
-voc     audio/voc
-voc     audio/x-voc
-vos     video/vosaic
-vox     audio/voxware
-vqe     audio/x-twinvq-plugin
-vqf     audio/x-twinvq
-vql     audio/x-twinvq-plugin
-vrml    application/x-vrml
-vrml    model/vrml
-vrml    x-world/x-vrml
-vrt     x-world/x-vrt
-vsd     application/x-visio
-vst     application/x-visio
-vsw     application/x-visio
-w60     application/wordperfect6.0
-w61     application/wordperfect6.1
-w6w     application/msword
-wav     audio/wav
-wav     audio/x-wav
-wb1     application/x-qpro
-wbmp    image/vnd.wap.wbmp
-web     application/vnd.xara
-wiz     application/msword
-wk1     application/x-123
-wmf     windows/metafile
-wml     text/vnd.wap.wml
-wmlc    application/vnd.wap.wmlc
-wmls    text/vnd.wap.wmlscript
-wmlsc   application/vnd.wap.wmlscriptc
-word    application/msword
-wp      application/wordperfect
-wp5     application/wordperfect
-wp5     application/wordperfect6.0
-wp6     application/wordperfect
-wpd     application/wordperfect
-wpd     application/x-wpwin
-wq1     application/x-lotus
-wri     application/mswrite
-wri     application/x-wri
-wrl     application/x-world
-wrl     model/vrml
-wrl     x-world/x-vrml
-wrz     model/vrml
-wrz     x-world/x-vrml
-wsc     text/scriplet
-wsrc    application/x-wais-source
-wtk     application/x-wintalk
-xbm     image/x-xbitmap
-xbm     image/x-xbm
-xbm     image/xbm
-xdr     video/x-amt-demorun
-xgz     xgl/drawing
-xif     image/vnd.xiff
-xl      application/excel
-xla     application/excel
-xla     application/x-excel
-xla     application/x-msexcel
-xlb     application/excel
-xlb     application/vnd.ms-excel
-xlb     application/x-excel
-xlc     application/excel
-xlc     application/vnd.ms-excel
-xlc     application/x-excel
-xld     application/excel
-xld     application/x-excel
-xlk     application/excel
-xlk     application/x-excel
-xll     application/excel
-xll     application/vnd.ms-excel
-xll     application/x-excel
-xlm     application/excel
-xlm     application/vnd.ms-excel
-xlm     application/x-excel
-xls     application/excel
-xls     application/vnd.ms-excel
-xls     application/x-excel
-xls     application/x-msexcel
-xlt     application/excel
-xlt     application/x-excel
-xlv     application/excel
-xlv     application/x-excel
-xlw     application/excel
-xlw     application/vnd.ms-excel
-xlw     application/x-excel
-xlw     application/x-msexcel
-xm      audio/xm
-xml     text/xml
-xml     application/xml
-xmz     xgl/movie
-xpix    application/x-vnd.ls-xpix
-xpm     image/x-xpixmap
-xpm     image/xpm
-x-png   image/png
-xsr     video/x-amt-showrun
-xwd     image/x-xwd
-xwd     image/x-xwindowdump
-xyz     chemical/x-pdb
-z       application/x-compress
-z       application/x-compressed
-zip     application/x-compressed
-zip     application/x-zip-compressed
-zip     application/zip
-zip     multipart/x-zip
-zoo     application/octet-stream
-zsh     text/x-script.zsh
-
-|]
