<NME> ViewNode.swift
<BEF> //
//  OpaqueView.swift
//  TemplateKit
//
//  Created by Matias Cudich on 9/8/16.
//  Copyright © 2016 Matias Cudich. All rights reserved.
//

import Foundation
import CSSLayout

class ViewNode<ViewType: View>: PropertyNode {
  weak var owner: Node?
  weak var parent: Node?
  var context: Context?

  var properties: DefaultProperties
  var children: [Node]?
  var element: ElementData<DefaultProperties>
  var cssNode: CSSNode?
  var builtView: ViewType?

  init(view: ViewType, element: ElementData<DefaultProperties>, owner: Node? = nil, context: Context? = nil) {
    self.builtView = view
    self.element = element
    self.properties = self.element.properties
    self.owner = owner
    self.context = context
  }

  func build() -> View {
    return builtView!
  }

  func getBuiltView<V>() -> V? {
    return builtView as? V
  }
}

<MSG> Remove getBuiltView function

<DFF> @@ -18,10 +18,11 @@ class ViewNode<ViewType: View>: PropertyNode {
   var children: [Node]?
   var element: ElementData<DefaultProperties>
   var cssNode: CSSNode?
-  var builtView: ViewType?
+
+  let view: View
 
   init(view: ViewType, element: ElementData<DefaultProperties>, owner: Node? = nil, context: Context? = nil) {
-    self.builtView = view
+    self.view = view
     self.element = element
     self.properties = self.element.properties
     self.owner = owner
@@ -29,10 +30,6 @@ class ViewNode<ViewType: View>: PropertyNode {
   }
 
   func build() -> View {
-    return builtView!
-  }
-
-  func getBuiltView<V>() -> V? {
-    return builtView as? V
+    return view
   }
 }

Remove getBuiltView function