diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,14 @@
+2009.6.5
+--------
+
+### Feature
+
+* add default instance to ServerConf
+
+### Fix
+
+* pass arbitrary ab -n test, use bytestring char8.
+
 2009.5.19
 ---------
 
diff --git a/hack-handler-happstack.cabal b/hack-handler-happstack.cabal
--- a/hack-handler-happstack.cabal
+++ b/hack-handler-happstack.cabal
@@ -1,5 +1,5 @@
 Name:                 hack-handler-happstack
-Version:              2009.5.19
+Version:              2009.6.5
 Build-type:           Simple
 Synopsis:             Hack Happstack server handler
 Description:          Hack Happstack server handler
@@ -15,7 +15,7 @@
 
 library
   ghc-options: -Wall
-  build-depends: base, cgi, network, bytestring, data-default >= 0.2, hack >= 2009.5.19, happstack-server >= 0.2.1, containers, mtl
+  build-depends: base >= 4.0 && < 5, cgi, network, bytestring, data-default >= 0.2, hack >= 2009.5.19, happstack-server >= 0.2.1, containers, mtl
   hs-source-dirs: src/
   exposed-modules:  
                     Hack.Handler.Happstack
diff --git a/src/Hack/Handler/Happstack.hs b/src/Hack/Handler/Happstack.hs
--- a/src/Hack/Handler/Happstack.hs
+++ b/src/Hack/Handler/Happstack.hs
@@ -12,25 +12,27 @@
 
 import Control.Arrow ((>>>))
 import Data.Default
-import Control.Monad.Trans
 import Data.List
 import Data.Char
 import Data.Maybe
+import Control.Monad.State
+import Data.Default
 
 import qualified Data.Map as M
-import qualified Data.ByteString as L
-import qualified Data.ByteString.Internal as I
+import qualified Data.ByteString.Char8 as S
 
 -- | we need this for 1. port 2. a bug in current Happstack.
 --   i.e. rqPeer will not give the corrent value for serverName and port
 data ServerConf = ServerConf { port :: Int, serverName :: String }
+instance Default ServerConf where
+  def = ServerConf { port = 3000, serverName = "localhost" }
 
 runWithConfig :: ServerConf -> Hack.Application -> IO ()
 runWithConfig conf app =
  Happstack.simpleHTTP nullConf { H.port = port conf } $ myPart conf app
 
 run :: Hack.Application -> IO ()
-run = runWithConfig $ ServerConf { port = 3000, serverName = "localhost" }
+run = runWithConfig $ def
 
 myPart :: ServerConf -> Hack.Application -> ServerPart (Happstack.Response)
 myPart conf app = do
@@ -68,8 +70,8 @@
 toHttp = M.toList >>> map snd >>> map headerToPair
 
 headerToPair :: HeaderPair -> (String, String)
-headerToPair (HeaderPair k v) = (translate_header $ b2s k, intercalate " " $ map b2s v)
-  where b2s x = map I.w2c $ L.unpack x
+headerToPair (HeaderPair k v) = 
+  (translate_header $ S.unpack k, intercalate " " $ map S.unpack v)
 
 toHappstackResponse :: Hack.Response -> Happstack.Response
 toHappstackResponse resp = Happstack.Response 
@@ -80,14 +82,12 @@
   ,  rsValidator = Nothing }
 
 
-
 convertHeaders :: [(String, String)] -> Happstack.Headers
 convertHeaders = map pairToHeader >>> M.fromList
   where 
-    pairToHeader (k,v) = ((c2b $ map toLower k), HeaderPair (c2b k) [c2b v])
-    c2b x              = L.pack $ map I.c2w x
+    pairToHeader (k,v) = 
+      ((S.pack $ map toLower k), HeaderPair (S.pack k) [S.pack v])
 
-  
 
 -- happstack converts all request header to lowercase ...
 -- so we need to convert it back ...
