 
 extension UIView: ContextPreloadable {
 
-    public func contextPreload() {
+    open func contextPreload() {
         guard let contextNode = self as? ContextNode, contextNode.contextToken == nil else { return }
         guard let inflatable = self as? UINibViewInflatable else { return }
         let view = inflatable.inflateView()


extension UIViewController: ContextPreloadable {

    public func contextPreload() {
        guard let contextNode = self as? ContextNode, contextNode.contextToken == nil else { return }
        self.loadViewIfNeeded()
    }


extension UIViewController: ContextNodeContainer {

    open var childContextObjects: [Any] {
        return self.childViewControllers.map({ $0 })
    }
}

extension UIView: ContextNodeContainer {

    open var childContextObjects: [Any] {
        return self.subviews.map({ $0 })
    }
}
