diff --git a/Nemesis b/Nemesis
--- a/Nemesis
+++ b/Nemesis
@@ -13,7 +13,7 @@
     sh "cabal sdist"
 
   desc "start console"
-  task "i" (sh "ghci -Wall -isrc src/Text/HTML/Moe.hs")
+  task "i" (sh "ghci -Wall -isrc src/Text/HTML/Moe2.hs")
 
   desc "put all .hs files in manifest"
   task "manifest" - do
diff --git a/moe.cabal b/moe.cabal
--- a/moe.cabal
+++ b/moe.cabal
@@ -1,5 +1,5 @@
 Name:                 moe
-Version:              2010.9.29.2
+Version:              2011.6.11
 Build-type:           Simple
 Synopsis:             html with style
 Description:
@@ -18,7 +18,7 @@
 
 library
   ghc-options: -Wall -fno-warn-orphans
-  build-depends: base >= 4 && < 5, mtl, mps >= 2009.9.18, data-default, bytestring, utf8-string, dlist
+  build-depends: base >= 4 && < 5, mtl, air >= 2011.6.11, data-default, bytestring, utf8-string, dlist
   hs-source-dirs: src/
   exposed-modules:  
                       Text.HTML.Moe   
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -7,7 +7,7 @@
     -- test.hs
 
     import Prelude hiding ((/), (-), head, (>), (.), div)
-    import MPS.Light ((-))
+    import Air.Light ((-))
     import Text.HTML.Moe2
 
     test_page :: String
@@ -52,4 +52,4 @@
     
 <br />
 
-![luba](http://github.com/nfjinjing/moe/raw/master/luba.jpg)
+![luba](https://github.com/nfjinjing/moe/raw/master/luba.jpg)
diff --git a/src/Text/HTML/Moe.hs b/src/Text/HTML/Moe.hs
--- a/src/Text/HTML/Moe.hs
+++ b/src/Text/HTML/Moe.hs
@@ -13,7 +13,7 @@
 import Control.Monad.Writer (execWriter)
 import Prelude hiding ((/), (-), head, (>), (.), concat, concatMap, (+))
 import qualified Prelude as P
-import MPS.Light ((>), (.), times)
+import Air.Light ((>), (.), times)
 import Text.HTML.Moe.Type hiding (name, value)
 import qualified Text.HTML.Moe.Type as T
 import Text.HTML.Moe.Element
diff --git a/src/Text/HTML/Moe/Attribute.hs b/src/Text/HTML/Moe/Attribute.hs
--- a/src/Text/HTML/Moe/Attribute.hs
+++ b/src/Text/HTML/Moe/Attribute.hs
@@ -3,7 +3,7 @@
 import Text.HTML.Moe.Type
 import Text.HTML.Moe.Utils
 import Prelude hiding (id, (-))
-import MPS.Light ((-))
+import Air.Light ((-))
 import Text.HTML.Moe.Utils
 
 attr :: String -> String -> Attribute
diff --git a/src/Text/HTML/Moe/DSL/Markdown.hs b/src/Text/HTML/Moe/DSL/Markdown.hs
--- a/src/Text/HTML/Moe/DSL/Markdown.hs
+++ b/src/Text/HTML/Moe/DSL/Markdown.hs
@@ -20,7 +20,7 @@
 
 import Text.HTML.Moe
 import Text.HTML.Moe.Type (MoeUnit)
-import MPS.Light ((-))
+import Air.Light ((-))
 import Prelude hiding ((-), (/), (>>), (*))
 
 single_line, r :: (MoeUnit -> MoeUnit) -> String -> MoeUnit
diff --git a/src/Text/HTML/Moe/Element.hs b/src/Text/HTML/Moe/Element.hs
--- a/src/Text/HTML/Moe/Element.hs
+++ b/src/Text/HTML/Moe/Element.hs
@@ -5,7 +5,7 @@
 import Data.Default
 import Control.Monad.Writer
 import Prelude hiding (id, span, div, head, (>), (.), (-))
-import MPS.Light ((-))
+import Air.Light ((-))
 import Data.DList (singleton, toList)
 
 element :: String -> MoeCombinator
diff --git a/src/Text/HTML/Moe2/Attribute.hs b/src/Text/HTML/Moe2/Attribute.hs
--- a/src/Text/HTML/Moe2/Attribute.hs
+++ b/src/Text/HTML/Moe2/Attribute.hs
@@ -3,7 +3,7 @@
 import Text.HTML.Moe2.Type
 import Text.HTML.Moe2.Utils
 import Prelude hiding (id, (-))
-import MPS.Light ((-))
+import Air.Light ((-))
 import Text.HTML.Moe2.Utils
 
 attr :: String -> String -> Attribute
diff --git a/src/Text/HTML/Moe2/DSL/Kawaii.hs b/src/Text/HTML/Moe2/DSL/Kawaii.hs
--- a/src/Text/HTML/Moe2/DSL/Kawaii.hs
+++ b/src/Text/HTML/Moe2/DSL/Kawaii.hs
@@ -7,7 +7,7 @@
 import Text.HTML.Moe2.Attribute
 import Text.HTML.Moe2.DSL.HTML
 import Text.HTML.Moe2.Utils
-import MPS.Env ((-))
+import Air.Env ((-))
 import Prelude hiding ((-), (/), div)
 
 c :: String -> MoeUnit -> MoeUnit
diff --git a/src/Text/HTML/Moe2/DSL/Markdown.hs b/src/Text/HTML/Moe2/DSL/Markdown.hs
--- a/src/Text/HTML/Moe2/DSL/Markdown.hs
+++ b/src/Text/HTML/Moe2/DSL/Markdown.hs
@@ -22,7 +22,7 @@
 import Text.HTML.Moe2.Attribute
 import Text.HTML.Moe2.DSL.HTML
 
-import MPS.Light ((-))
+import Air.Light ((-))
 import Prelude hiding ((-), (/), (>>), (*))
 
 single_line, r :: (MoeUnit -> MoeUnit) -> String -> MoeUnit
diff --git a/src/Text/HTML/Moe2/Element.hs b/src/Text/HTML/Moe2/Element.hs
--- a/src/Text/HTML/Moe2/Element.hs
+++ b/src/Text/HTML/Moe2/Element.hs
@@ -5,7 +5,7 @@
 import Data.Default
 import Control.Monad.Writer
 import Prelude hiding (id, span, div, head, (>), (.), (-))
-import MPS.Light ((-), first)
+import Air.Light ((-), first)
 import Data.DList (singleton, toList)
 
 element :: String -> MoeCombinator
diff --git a/src/Text/HTML/Moe2/Renderer.hs b/src/Text/HTML/Moe2/Renderer.hs
--- a/src/Text/HTML/Moe2/Renderer.hs
+++ b/src/Text/HTML/Moe2/Renderer.hs
@@ -3,7 +3,7 @@
 module Text.HTML.Moe2.Renderer
 (
     render
-  , render'
+  , render_bytestring
 )
 where
 
@@ -16,20 +16,21 @@
 import Prelude hiding ((/), (-), head, (>), (.), concat, concatMap, (+))
 import qualified Prelude as P
 
-import MPS.Env ((>), (.), times, belongs_to, reject)
+import Air.Env ((>), (.), times, belongs_to, reject, (+))
 
 import Control.Monad.Writer (execWriter)
 
 import qualified Data.ByteString.Char8 as B
+import qualified Data.ByteString.Lazy.Char8 as L
 import Data.DList (toList)
 import Data.List (intersperse)
 
 
 render :: MoeUnit -> String
-render = render' > B.unpack
+render = render_bytestring > L.unpack
 
-render' :: MoeUnit -> B.ByteString
-render' = execWriter > toList > map render_element > intercalate new_line > to_bs
+render_bytestring :: MoeUnit -> L.ByteString
+render_bytestring = execWriter > toList > map render_element > intercalate new_line > to_bs > return > L.fromChunks
 
 _indent_space :: Int
 _indent_space = 2
diff --git a/src/Text/HTML/Moe2/Utils.hs b/src/Text/HTML/Moe2/Utils.hs
--- a/src/Text/HTML/Moe2/Utils.hs
+++ b/src/Text/HTML/Moe2/Utils.hs
@@ -1,6 +1,5 @@
 module Text.HTML.Moe2.Utils 
 ( escape
-, (+)
 , module Text.HTML.Moe.Backend.ByteString
 , (/)
 ) where
@@ -8,7 +7,7 @@
 import Data.Monoid
 import Text.HTML.Moe.Backend.ByteString
 import Text.HTML.Moe2.Type
-import Prelude hiding ((/), (+))
+import Prelude hiding ((/))
 
 escape :: String -> String
 escape = escape_html
@@ -26,7 +25,3 @@
 
 (/) :: MoeUnit
 (/) = return ()
-
-(+) :: (Monoid a) => a -> a -> a
-(+) = mappend
-infixl 5 +
diff --git a/src/test.hs b/src/test.hs
--- a/src/test.hs
+++ b/src/test.hs
@@ -1,5 +1,5 @@
 import Prelude hiding ((/), (-), head, (>), (.), div)
-import MPS.Light ((-))
+import Air.Light ((-))
 import Text.HTML.Moe2
 
 test_page :: String
