 	public init(initialState: S) {
 		self.state = initialState
 		self.renderFn = nil
+		self.didRealizeFn = nil
 	}
 
 	public init(initialState: S, render: (Component, S) -> Element) {
 		self.renderFn = render
 		self.state = initialState
+		self.didRealizeFn = nil
+	}
+
+	public init(initialState: S, didRealize: Component -> (), render: (Component, S) -> Element) {
+		self.renderFn = render
+		self.state = initialState
+		self.didRealizeFn = didRealize
 	}
 
 	// MARK: Lifecycle


	private let renderFn: ((Component, S) -> Element)?

	private var renderQueued: Bool = false

	/// Is the component a root?

		if realizedRoot == nil {
			componentWillRealize()
			realizeNewRoot(rootElement!)
			didRealizeFn?(self)
			componentDidRealize()
		}
	}
