 
 		// If we can diff then apply it. Otherwise we just swap out the entire
 		// hierarchy.
-		if topElement.canDiff(otherElement) {
-			topElement.applyDiff(otherElement)
+		if rootElement.canDiff(otherElement) {
+			rootElement.applyDiff(otherElement)
 		} else {
-			topElement.derealize()
-			topElement = otherElement
+			rootElement.derealize()
+			rootElement = otherElement
 
 			if let hostView = hostView {
-				topElement.realize(self, parentView: hostView)
+				rootElement.realize(self, parentView: hostView)
 			}
 		}
 		

	public func remove() {
		componentWillDerealize()
		
		topElement.derealize()
		hostView = nil
		
		componentDidDerealize()

		componentWillRealize()
		
		hostView = view
		rootElement.realize(self, parentView: view)
		
		componentDidRealize()
	}
