 	rendererClass = Renderer[obj.name.split('.')[0]]
 	isLocal = rendererClass?
 	decl = if isLocal then "new #{obj.name}" else "#{obj.name}"
-	r = "var #{obj.id} = #{decl}();\n"
+	r = "var #{obj.id} = ids.#{obj.id} = #{decl}();\n"
 
 	properties = getEachProp(getByType(obj.body, PROPERTY), 'name')
 	for property in properties

	for signal in signals
		r += "#{obj.id}.createSignal('#{utils.addSlashes(signal)}')\n"

	for child in getByType(obj.body, OBJECT)
		r += stringObject child


		if typeof elem is 'string'
			elem = elem.replace ///'///g, '\\\''
			text += "'#{elem}'"
		else if elem.length > 1
			text += repeatString('[', elem.length-1)
			text += "#{elem[0]}"
			elem.shift()
			for id, i in elem
				text += ", '#{id}']"
		else
			text += "#{elem[0]}"

	"[#{text}]"

stringObjectHead = (obj) ->
	assert obj.type is OBJECT, "stringObject: type must be an object"

	if getByType(obj.body, ID).length > 0
