           "if _R.storyboard.\(sanitizedSwiftName(storyboard.name))().\(sanitizedSwiftName($0))() == nil { throw ValidationError(description:\"[R.swift] ViewController with identifier '\(sanitizedSwiftName($0))' could not be loaded from storyboard '\(storyboard.name)' as '\(vc.type)'.\") }"
         }
       }
+    let validateLines = validateImagesLines + validateViewControllersLines
 
-    var implements = [TypePrinter(type: Type.Validatable, style: .FullyQualified)]
-    var typealiasses: [Typealias] = []
-    if let initialViewController = storyboard.initialViewController {
-      implements.append(TypePrinter(type: Type.StoryboardResourceWithInitialControllerType))
-      typealiasses.append(Typealias(alias: "InitialController", type: initialViewController.type))
-    } else {
-      implements.append(TypePrinter(type: Type.StoryboardResourceType))
+    if validateLines.count > 0 {
+      let validateFunction = Function(
+        isStatic: true,
+        name: "validate",
+        generics: nil,
+        parameters: [],
+        doesThrow: true,
+        returnType: Type._Void,
+        body: validateLines.joinWithSeparator("\n")
+      )
+      functions.append(validateFunction)
+      implements.append(TypePrinter(type: Type.Validatable, style: .FullyQualified))
     }
-
-    let validateFunction = Function(
-      isStatic: true,
-      name: "validate",
-      generics: nil,
-      parameters: [],
-      doesThrow: true,
-      returnType: Type._Void,
-      body: (validateImagesLines + validateViewControllersLines).joinWithSeparator("\n")
-    )
 
     return Struct(
       type: Type(module: .Host, name: sanitizedSwiftName(storyboard.name)),

        Let(isStatic: false, name: "name", typeDefinition: .Inferred(Type._String), value: "\"\(storyboard.name)\""),
        Let(isStatic: false, name: "bundle", typeDefinition: .Inferred(Type._NSBundle), value: "_R.hostingBundle"),
      ],
      functions: [
        validateFunction,
        ] + instantiateViewControllerFunctions,
      structs: []
    )
  }

          )
        }
      }
      .forEach { functions.append($0) }

    let validateImagesLines = Set(storyboard.usedImageIdentifiers)
      .map {
