diff --git a/Kevin/Base.hs b/Kevin/Base.hs
--- a/Kevin/Base.hs
+++ b/Kevin/Base.hs
@@ -24,7 +24,6 @@
 import Control.Monad.CatchIO as K
 import Control.Monad.Reader as K
 import qualified Data.ByteString.Char8 as T (hGetLine, hPutStr)
-import Data.List (intercalate)
 import qualified Data.Text as T
 import qualified Data.Text.Encoding as T
 import Data.Typeable
@@ -59,12 +58,6 @@
 
 -- actions
 
-padLines :: Int -> T.Text -> String
-padLines len b = let (first:rest) = lines $ T.unpack b
-                  in (++) (first ++ "\n") . intercalate "\n"
-                          . map (replicate len ' ' ++)
-                        $ rest
-
 hGetCharTimeout :: Handle -> Int -> IO Char
 hGetCharTimeout h t = do
     hSetBuffering h NoBuffering
@@ -83,19 +76,11 @@
 instance KevinServer Kevin where
     readClient k = do
         line <- T.decodeUtf8 <$> T.hGetLine (irc k)
-        klog_ (logger k) Yellow $ "client <- " ++ padLines 10 line
         return $ T.init line
-    readServer k = do
-        line <- T.pack <$> hGetSep '\NUL' (damn k)
-        klog_ (logger k) Cyan $ "server <- " ++ padLines 10 line
-        return line
+    readServer k = T.pack <$> hGetSep '\NUL' (damn k)
 
-    writeClient k pkt = do
-        klog_ (logger k) Blue $ "client -> " ++ padLines 10 pkt
-        writeChan (iChan k) pkt
-    writeServer k pkt = do
-        klog_ (logger k) Magenta $ "server -> " ++ padLines 10 pkt
-        writeChan (dChan k) pkt
+    writeClient k = writeChan (iChan k)
+    writeServer k = writeChan (dChan k)
 
     closeClient = hClose . irc
     closeServer = hClose . damn
diff --git a/Kevin/Chatrooms.hs b/Kevin/Chatrooms.hs
--- a/Kevin/Chatrooms.hs
+++ b/Kevin/Chatrooms.hs
@@ -48,10 +48,10 @@
 removeUserAll ch us = kevin $ users.ix ch %= filter ((/= us) . username)
 
 setUsers :: Chatroom -> [User] -> KevinIO ()
-setUsers ch uss = kevin $ users.at ch .= Just uss
+setUsers ch uss = kevin $ users.at ch ?= uss
 
 setPrivclasses :: Chatroom -> [Privclass] -> KevinIO ()
-setPrivclasses room ps = kevin $ privclasses.at room .= Just (M.fromList ps)
+setPrivclasses room ps = kevin $ privclasses.at room ?= M.fromList ps
 
 getPrivclass :: Chatroom -> T.Text -> KevinIO (Maybe T.Text)
 getPrivclass room user = do
@@ -73,4 +73,4 @@
             %= (\u -> u {privclass = pc, privclassLevel = pclevel})
 
 setTitle :: Chatroom -> T.Text -> KevinIO ()
-setTitle ch t = kevin $ titles.at ch .= Just t
+setTitle ch t = kevin $ titles.at ch ?= t
diff --git a/Kevin/Damn/Protocol.hs b/Kevin/Damn/Protocol.hs
--- a/Kevin/Damn/Protocol.hs
+++ b/Kevin/Damn/Protocol.hs
@@ -132,7 +132,6 @@
         countUser <- numUsers roomname usname
         let us = mkUser roomname pcs modifiedPkt
         addUser roomname us
-        klogError $ show (usname, pcs, countUser, pkt, modifiedPkt, us, username us)
         if countUser == 0
             then do
                 I.sendJoin usname roomname
diff --git a/Kevin/Protocol.hs b/Kevin/Protocol.hs
--- a/Kevin/Protocol.hs
+++ b/Kevin/Protocol.hs
@@ -8,7 +8,7 @@
 import qualified Kevin.Damn.Protocol as S
 import qualified Kevin.IRC.Protocol as C
 import Kevin.Util.Logger
-import Prelude hiding (catch)
+import Prelude
 
 watchInterrupt :: [Handler IO (Maybe Kevin)]
 watchInterrupt = [ handler _AsyncException throw
diff --git a/Kevin/Types.hs b/Kevin/Types.hs
--- a/Kevin/Types.hs
+++ b/Kevin/Types.hs
@@ -86,7 +86,7 @@
 
 type KevinIO = ReaderT (TVar Kevin) IO
 
-use_ :: Getting a Kevin t a b -> KevinIO a
+use_ :: Getting a Kevin a -> KevinIO a
 use_ = gets_ . view
 
 get_ :: KevinIO Kevin
diff --git a/Kevin/Version.hs b/Kevin/Version.hs
--- a/Kevin/Version.hs
+++ b/Kevin/Version.hs
@@ -4,7 +4,7 @@
 import Data.Version
 
 version :: Version
-version = Version [0,7,2] []
+version = Version [0,8] []
 
 versionStr :: Text
 versionStr = pack $ showVersion version
diff --git a/kevin.cabal b/kevin.cabal
--- a/kevin.cabal
+++ b/kevin.cabal
@@ -1,5 +1,5 @@
 Name:             kevin
-Version:          0.7.2
+Version:          0.8
 Synopsis:         a dAmn ↔ IRC proxy
 Description:      a dAmn ↔ IRC proxy
 License:          GPL
@@ -19,23 +19,23 @@
 
     Default-language:   Haskell2010
     
-    Build-Depends:      attoparsec == 0.10.*,
+    Build-Depends:      attoparsec,
                         base == 4.*,
-                        bytestring == 0.9.*,
-                        containers == 0.4.*,
-                        cprng-aes == 0.3.*,
-                        data-default == 0.5.*,
-                        HTTP == 4000.2.*,
-                        lens >= 3.8.5 && < 3.9,
-                        MonadCatchIO-transformers == 0.3.*,
-                        mtl == 2.1.*,
-                        network == 2.4.*,
-                        regex-pcre-builtin == 0.94.*,
-                        stm == 2.4.*,
-                        text == 0.11.*,
-                        time == 1.4.*,
-                        tls == 1.1.*,
-                        tls-extra == 0.6.*
+                        bytestring,
+                        containers,
+                        cprng-aes,
+                        data-default,
+                        HTTP,
+                        lens,
+                        MonadCatchIO-transformers,
+                        mtl,
+                        network,
+                        regex-pcre-builtin,
+                        stm,
+                        text,
+                        time,
+                        tls,
+                        tls-extra
                         
     Other-Modules:      Kevin,
                         Kevin.Base,
