diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,18 @@
+2009.9.16
+---------
+
+### Feature
+
+* Thanks to eagletmt, self closing tags are possilbe
+
+    * input
+    * br
+    * hr
+    * meta
+    * link
+
+    are now self closing tags.
+
 2009.9.2
 --------
 
diff --git a/moe.cabal b/moe.cabal
--- a/moe.cabal
+++ b/moe.cabal
@@ -1,5 +1,5 @@
 Name:                 moe
-Version:              2009.9.2
+Version:              2009.9.16
 Build-type:           Simple
 Synopsis:             html with style
 Description:
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -14,17 +14,17 @@
     test_page = render -
       html' - do
         head' - do
-          meta
-            [http_equiv "Content-Type", content "text/html; charset-utf-8"] (/)
+          meta [http_equiv "Content-Type", content "text/html; charset-utf-8"]
           title' - str "my title"
-          link [rel "icon", _type "image/png", href "panda_icon.png"] (/)
-      
+          link [rel "icon", _type "image/png", href "panda_icon.png"]
+
         body' - do
           div [_class "container"] - do
             str "hello world"
-    
+
     main :: IO ()
     main = putStrLn test_page
+    
 
 install and run
 
@@ -37,13 +37,11 @@
 
     <html>
       <head>
-        <meta http-equiv="Content-Type" content="text/html; charset-utf-8">
-        </meta>
+        <meta http-equiv="Content-Type" content="text/html; charset-utf-8"/>
         <title>
           my title
         </title>
-        <link rel="icon" type="image/png" href="panda_icon.png">
-        </link>
+        <link rel="icon" type="image/png" href="panda_icon.png"/>
       </head>
       <body>
         <div class="container">
@@ -51,6 +49,4 @@
         </div>
       </body>
     </html>
-
-
 
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
@@ -49,23 +49,36 @@
 render_element' n (Prim x)  = _indent n + x + new_line
 render_element' n (Data x)  = _indent n + x + new_line
   
-render_element' n x = 
-  [ _indent n
-  , "<".pack
-  , x.T.name
-  , x.attributes.map render_attribute. join_attribute
-  , ">".pack
-  , new_line
-  , x.elements.map (render_element' (n P.+ 1)) .concat
-  , _indent n
-  , "</".pack
-  , x.T.name
-  , ">".pack
-  , new_line
-  ]
-  .concat
+render_element' n x 
+  | x.self_close =
+    [ _indent n
+    , "<".pack
+    , x.T.name
+    , x.attributes.map render_attribute. join_attribute
+    , " />".pack
+    , new_line
+    ]
+    .concat
+    
+  | otherwise = 
+    [ _indent n
+    , "<".pack
+    , x.T.name
+    , x.attributes.map render_attribute. join_attribute
+    , ">".pack
+    , new_line
+    , x.elements.map (render_element' (n P.+ 1)) .concat
+    , _indent n
+    , "</".pack
+    , x.T.name
+    , ">".pack
+    , new_line
+    ]
+    .concat
+    
   where
     join_attribute xs = xs.map (pack " " `append`) .concat
+
 
 
 render_element :: Element -> Internal
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
@@ -22,6 +22,7 @@
 border      :: String -> Attribute
 classid     :: String -> Attribute
 colspan     :: String -> Attribute
+cols        :: String -> Attribute
 content     :: String -> Attribute
 height      :: String -> Attribute
 href        :: String -> Attribute
@@ -35,6 +36,7 @@
 quality     :: String -> Attribute
 rel         :: String -> Attribute
 rowspan     :: String -> Attribute
+rows        :: String -> Attribute
 selected    :: String -> Attribute
 src         :: String -> Attribute
 size        :: String -> Attribute
@@ -58,6 +60,7 @@
 border      = attr "border"
 classid     = attr "classid"
 colspan     = attr "colspan"
+cols        = attr "cols"
 content     = attr "content"
 height      = attr "height"
 href        = attr "href"
@@ -71,6 +74,7 @@
 quality     = attr "quality"
 rel         = attr "rel"
 rowspan     = attr "rowspan"
+rows        = attr "rows"
 selected    = attr "selected"
 src         = attr "src"
 size        = attr "size"
diff --git a/src/Text/HTML/Moe/DSL/Kawaii.hs b/src/Text/HTML/Moe/DSL/Kawaii.hs
--- a/src/Text/HTML/Moe/DSL/Kawaii.hs
+++ b/src/Text/HTML/Moe/DSL/Kawaii.hs
@@ -10,7 +10,10 @@
 c x = div [_class x]
 
 css :: String -> MoeUnit
-css x = link [rel "stylesheet", _type "text/css", href x] (/)
+css x = link [rel "stylesheet", _type "text/css", href x]
+
+js :: String -> MoeUnit
+js x = script [_type "text/javascript", src x] (/)
 
 (~>) :: String -> String -> MoeUnit
 (~>) = (<>)
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
@@ -56,6 +56,6 @@
 -- __        = r strong'
 o         = r li'
 block     = pre' . code' . _pre
-(***)     = hr' (/)
-(!) x y   = img [src y, alt x] (/)
+(***)     = hr'
+(!) x y   = img [src y, alt x]
 (<>) x y  = a [href y] - str x
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
@@ -9,8 +9,8 @@
 import Data.DList (singleton, toList)
 
 
-element' :: String -> MoeCombinator
-element' x xs u = tell - singleton - 
+element :: String -> MoeCombinator
+element x xs u = tell - singleton - 
   def
     {
       name       = pack - escape x
@@ -19,10 +19,10 @@
     }
 
 e :: String -> MoeCombinator
-e = element'
+e = element
   
-element :: (String -> MoeCombinator) -> (String -> MoeCombinator')
-element x = flip x []
+element' :: (String -> MoeCombinator) -> (String -> MoeCombinator')
+element' x = flip x []
 
 no_indent_element :: String -> MoeCombinator
 no_indent_element x xs u = tell - singleton -
@@ -37,9 +37,21 @@
 ne :: String -> MoeCombinator
 ne = no_indent_element
 
+self_close_element :: String -> LightCombinator
+self_close_element x xs = tell - singleton - 
+  def
+    {
+      name       = pack - escape x
+    , attributes = xs
+    , self_close = True
+    }
+
+sc :: String -> LightCombinator
+sc = self_close_element
+
 a         :: MoeCombinator
 body      :: MoeCombinator
-br        :: MoeCombinator
+br        :: LightCombinator
 blockquote  :: MoeCombinator
 code      :: MoeCombinator
 colgroup  :: MoeCombinator
@@ -56,13 +68,13 @@
 h6        :: MoeCombinator
 head      :: MoeCombinator
 html      :: MoeCombinator
-hr        :: MoeCombinator
-img       :: MoeCombinator
-input     :: MoeCombinator
+hr        :: LightCombinator
+img       :: LightCombinator
+input     :: LightCombinator
 label     :: MoeCombinator
 li        :: MoeCombinator
-link      :: MoeCombinator
-meta      :: MoeCombinator
+link      :: LightCombinator
+meta      :: LightCombinator
 object    :: MoeCombinator
 ol        :: MoeCombinator
 param     :: MoeCombinator
@@ -87,7 +99,7 @@
 
 a'          ::  MoeCombinator'
 body'       ::  MoeCombinator'
-br'         ::  MoeCombinator'
+br'         ::  LightCombinator'
 blockquote' ::  MoeCombinator'
 code'       ::  MoeCombinator'
 colgroup'   ::  MoeCombinator'
@@ -104,13 +116,13 @@
 h6'         ::  MoeCombinator'
 head'       ::  MoeCombinator'
 html'       ::  MoeCombinator'
-hr'         ::  MoeCombinator'
-img'        ::  MoeCombinator'
-input'      ::  MoeCombinator'
+hr'         ::  LightCombinator'
+img'        ::  LightCombinator'
+input'      ::  LightCombinator'
 label'      ::  MoeCombinator'
 li'         ::  MoeCombinator'
-link'       ::  MoeCombinator'
-meta'       ::  MoeCombinator'
+link'       ::  LightCombinator'
+meta'       ::  LightCombinator'
 object'     ::  MoeCombinator'
 ol'         ::  MoeCombinator'
 param'      ::  MoeCombinator'
@@ -136,7 +148,7 @@
 
 a          = e "a"
 body       = e "body"
-br         = e "br"
+br         = sc "br"
 blockquote  = e "blockquote"
 code       = e "code"
 colgroup   = e "colgroup"
@@ -153,13 +165,13 @@
 h6         = e "h6"
 head       = e "head"
 html       = e "html"
-hr         = e "hr"
-img        = e "img"
-input      = e "input"
+hr         = sc "hr"
+img        = sc "img"
+input      = sc "input"
 label      = e "label"
 li         = e "li"
-link       = e "link"
-meta       = e "meta"
+link       = sc "link"
+meta       = sc "meta"
 object     = e "object"
 ol         = e "ol"
 param      = e "param"
diff --git a/src/Text/HTML/Moe/Type.hs b/src/Text/HTML/Moe/Type.hs
--- a/src/Text/HTML/Moe/Type.hs
+++ b/src/Text/HTML/Moe/Type.hs
@@ -12,6 +12,7 @@
       , attributes :: [Attribute]
       , elements :: [Element]
       , indent :: Bool
+      , self_close :: Bool
       }
   | Raw Internal  -- no escape, no indent
   | Pre Internal  -- escape, no indent
@@ -20,7 +21,14 @@
   deriving (Show)
 
 instance Default Element where
-  def = Element none def def True
+  def = Element 
+    {
+      name = none
+    , attributes = def
+    , elements = def
+    , indent = True
+    , self_close = False
+    }
 
 data Attribute = Attribute
   {
@@ -37,3 +45,6 @@
 
 type MoeCombinator = [Attribute] -> MoeUnit -> MoeUnit
 type MoeCombinator' = MoeUnit -> MoeUnit
+
+type LightCombinator = [Attribute] -> MoeUnit
+type LightCombinator' = MoeUnit
diff --git a/src/test.hs b/src/test.hs
--- a/src/test.hs
+++ b/src/test.hs
@@ -6,10 +6,9 @@
 test_page = render -
   html' - do
     head' - do
-      meta
-        [http_equiv "Content-Type", content "text/html; charset-utf-8"] (/)
+      meta [http_equiv "Content-Type", content "text/html; charset-utf-8"]
       title' - str "my title"
-      link [rel "icon", _type "image/png", href "panda_icon.png"] (/)
+      link [rel "icon", _type "image/png", href "panda_icon.png"]
   
     body' - do
       div [_class "container"] - do
