 		rootElement = oldComponent.rootElement
 		realizedRoot = oldComponent.realizedRoot
 
-		renderWithDefaultFrame(rootElement?.frame ?? frame)
+		renderNewRoot()
 	}
 	
 	public override func realize() -> RealizedElement {
-		performInitialRenderIfNeeded(frame)
+		performInitialRenderIfNeeded()
 		realizeRootIfNeeded()
 		return RealizedElement(element: self, view: realizedRoot!.view)
 	}

		realizedRoot = realized
	}

	final private func renderWithDefaultFrame(defaultFrame: CGRect) {
		let newRoot = render(state)
		newRoot.frame = defaultFrame

		let node = newRoot.assembleLayoutNode()
		let layout = node.layout()
		newRoot.applyLayout(layout)

		// If we're not a root then we'll use the default frame until our parent
		// lays us out.
		if !root { newRoot.frame = defaultFrame }

		if let rootElement = rootElement {
			if newRoot.canDiff(rootElement) {

	}

	final private func realizeNewRoot(newRoot: Element) {
		let realized = newRoot.realize()

		configureViewToAutoresize(realized.view)
