var t = require('templayed')

module.exports = function (parent, template, id) { 
  var domNode

  return function (data, cb) {
    var div = document.createElement('div')

    if (data instanceof Function) {
      div.innerHTML = template
      cb = data
    } else div.innerHTML = t(template)(data)

    if (domNode) {
      var newNode = div.removeChild(div.firstChild)
      parent.replaceChild(newNode, domNode)
      domNode = newNode
    }

    if (!domNode) {
      domNode = div.removeChild(div.firstChild)
      parent.appendChild(domNode)
    }

    if (id) domNode.id = id

    if (cb) cb(domNode)
  }
}

@@ -98,16 +98,29 @@
   return
+ %7B%0A    draw :
  functio
@@ -134,24 +134,26 @@
 , cb) %7B%0A    
+  
 var div = do
@@ -181,24 +181,26 @@
 'div')%0A%0A    
+  
 if (data ins
@@ -215,24 +215,26 @@
 Function) %7B%0A
+  
       div.in
@@ -258,16 +258,18 @@
 e%0A      
+  
 cb = dat
@@ -270,16 +270,18 @@
  = data%0A
+  
     %7D el
@@ -318,16 +318,18 @@
 (data)%0A%0A
+  
     if (
@@ -341,24 +341,26 @@
 de) %7B%0A      
+  
 var newNode 
@@ -385,32 +385,34 @@
 div.firstChild)%0A
+  
       parent.rep
@@ -441,24 +441,26 @@
 Node)%0A      
+  
 domNode = ne
@@ -465,27 +465,31 @@
 newNode%0A    
+ 
+ 
 %7D%0A%0A
+  
     if (!dom
@@ -492,24 +492,26 @@
 !domNode) %7B%0A
+  
       domNod
@@ -548,24 +548,26 @@
 hild)%0A      
+ 
+ 
 parent.appen
@@ -582,27 +582,112 @@
 omNode)%0A    
+  
 %7D%0A%0A
+      domNode.erase = function () %7B%0A        parent.removeChild(domNode)%0A      %7D%0A%0A  
     if (id) 
@@ -703,24 +703,26 @@
 d = id%0A%0A    
+ 
+ 
 if (cb) cb(d
@@ -729,14 +729,87 @@
 omNode)%0A
+    %7D,%0A    erase : function () %7B%0A      parent.removeChild(domNode)%0A    %7D%0A
   %7D%0A%7D%0A

add draw/erase methods to mini renderer