         if contents?
           toNodes = (contents) ->
             for child in contents
-              if _.isString(child)
+              if _.isString(child) or _.isNumber(child)
                 document.createTextNode(child)
               else if child instanceof Element
                 child

        if classes
          atts.class = (cls.replace(/^\./, '') for cls in classes).join(' ')
        atts
    

    rxt.mktag = mktag = (tag) ->
      (arg1, arg2) ->

                    .addClass('updated-element').offset({top,left})
                    .width($(node).width()).height($(node).height())
                setTimeout (-> $(cover).remove() for cover in covers), 2000
            else if _.isString(contents) or _.isNumber(contents) or contents instanceof Element or
                contents instanceof RawHtml or contents instanceof $
              updateContents([contents])
            else
              throw new Error("Unknown type for element contents: #{contents.constructor.name} (accepted types: string, number, Element, RawHtml, jQuery object of single element, or array of the aforementioned)")
          if contents instanceof ObsArray
            rx.autoSub contents.onChange, ([index, removed, added]) ->
              elt.contents().slice(index, index + removed.length).remove()
