 		}
 	}
 
-	private func enqueueRender() {
+	final private func enqueueRender() {
 		if renderQueued { return }
 
 		renderQueued = true

		}
	}

	private func getViewRecursive(key: String, rootElement: RealizedElement) -> ViewType? {
		if rootElement.element.key == key { return rootElement.view }

		for element in rootElement.children {

	}
	
	/// Update the state using the given function.
	final public func updateState(fn: S -> S) {
		precondition(NSThread.isMainThread(), "Component.updateState called on a background thread. Donut do that!")

		let oldState = state
