diff --git a/src/Tulsi/Base.lproj/SplashScreenWindowController.xib b/src/Tulsi/Base.lproj/SplashScreenWindowController.xib
index ecdac33..99c0754 100644
--- a/src/Tulsi/Base.lproj/SplashScreenWindowController.xib
+++ b/src/Tulsi/Base.lproj/SplashScreenWindowController.xib
@@ -1,8 +1,10 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14092" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
-        <deployment version="101100" identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10117"/>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14092"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+        <capability name="system font weights other than Regular or Bold" minToolsVersion="7.0"/>
     </dependencies>
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="SplashScreenWindowController" customModule="Tulsi" customModuleProvider="target">
@@ -16,13 +18,14 @@
         <window title="Tulsi" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" frameAutosaveName="TulsiSplashScreen" animationBehavior="default" id="F0z-JX-Cv5">
             <windowStyleMask key="styleMask" titled="YES" closable="YES"/>
             <rect key="contentRect" x="196" y="240" width="618" height="377"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1418"/>
             <view key="contentView" wantsLayer="YES" id="se5-gp-TjO">
                 <rect key="frame" x="0.0" y="0.0" width="618" height="377"/>
                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                 <subviews>
                     <scrollView fixedFrame="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="66" horizontalPageScroll="10" verticalLineScroll="66" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lIe-Jb-eJQ">
                         <rect key="frame" x="302" y="0.0" width="316" height="377"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                         <clipView key="contentView" ambiguous="YES" id="rhv-1s-qIM">
                             <rect key="frame" x="0.0" y="0.0" width="316" height="377"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -34,7 +37,7 @@
                                     <color key="backgroundColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
                                     <color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
                                     <tableColumns>
-                                        <tableColumn width="313" minWidth="40" maxWidth="1000" id="E0b-oY-vBl">
+                                        <tableColumn identifier="" width="313" minWidth="40" maxWidth="1000" id="E0b-oY-vBl">
                                             <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
                                                 <font key="font" metaFont="smallSystem"/>
                                                 <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
@@ -53,10 +56,12 @@
                                                     <subviews>
                                                         <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="eb5-0J-vRT">
                                                             <rect key="frame" x="8" y="8" width="32" height="32"/>
+                                                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                                             <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" id="VYj-Sd-CCU"/>
                                                         </imageView>
                                                         <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vbY-uf-dQf">
                                                             <rect key="frame" x="48" y="8" width="159" height="32"/>
+                                                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                                             <textFieldCell key="cell" lineBreakMode="truncatingTail" allowsUndo="NO" sendsActionOnEndEditing="YES" placeholderString="Recent document name" drawsBackground="YES" id="Ed7-ov-gOg">
                                                                 <font key="font" metaFont="system"/>
                                                                 <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@@ -92,24 +97,25 @@
                     </scrollView>
                     <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Cr0-BZ-yKF">
                         <rect key="frame" x="94" y="213" width="128" height="128"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="Wew-p3-Ia8"/>
                     </imageView>
                     <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gTk-1P-U8m">
                         <rect key="frame" x="35" y="166" width="238" height="39"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                         <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Welcome to Tulsi" id="4GE-zf-x1i">
                             <font key="font" metaFont="systemThin" size="32"/>
                             <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
                             <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                         </textFieldCell>
                     </textField>
-                    <box verticalHuggingPriority="750" fixedFrame="YES" title="Box" boxType="separator" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="YN8-Pe-4dY">
+                    <box verticalHuggingPriority="750" fixedFrame="YES" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="YN8-Pe-4dY">
                         <rect key="frame" x="35" y="121" width="268" height="5"/>
-                        <color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
-                        <color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
-                        <font key="titleFont" metaFont="system"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                     </box>
                     <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="r0o-iG-fXB">
                         <rect key="frame" x="35" y="141" width="238" height="17"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                         <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" alignment="center" title="Tulsi version information" usesSingleLineMode="YES" id="3kf-8j-4Yc">
                             <font key="font" metaFont="system"/>
                             <color key="textColor" name="windowFrameColor" catalog="System" colorSpace="catalog"/>
@@ -125,6 +131,7 @@
                     </textField>
                     <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ujV-sA-1qZ">
                         <rect key="frame" x="35" y="67" width="261" height="48"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                         <buttonCell key="cell" type="square" title="Create new project…" bezelStyle="shadowlessSquare" image="NewProject" imagePosition="left" alignment="left" state="on" imageScaling="proportionallyDown" inset="2" id="D9j-0y-ovw">
                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                             <font key="font" metaFont="systemBold"/>
@@ -135,6 +142,7 @@
                     </button>
                     <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9Gh-jw-2TU" userLabel="Open Existing Project">
                         <rect key="frame" x="35" y="14" width="261" height="48"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                         <buttonCell key="cell" type="square" title="Open existing project…" bezelStyle="shadowlessSquare" image="OpenProject" imagePosition="left" alignment="left" state="on" imageScaling="proportionallyDown" inset="2" id="PxS-uS-IAo">
                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                             <font key="font" metaFont="systemBold"/>
@@ -152,7 +160,7 @@
         </window>
     </objects>
     <resources>
-        <image name="NewProject" width="48" height="48"/>
-        <image name="OpenProject" width="48" height="48"/>
+        <image name="NewProject" width="512" height="512"/>
+        <image name="OpenProject" width="497" height="497"/>
     </resources>
 </document>
diff --git a/src/Tulsi/TulsiCommandlineParser.swift b/src/Tulsi/TulsiCommandlineParser.swift
index f654ea3..333936f 100644
--- a/src/Tulsi/TulsiCommandlineParser.swift
+++ b/src/Tulsi/TulsiCommandlineParser.swift
@@ -216,7 +216,7 @@
 
             let pathFilters = valueString.components(separatedBy: " ").map() { path -> String in
               if path.hasPrefix("//") {
-                return path.substring(from: path.characters.index(path.startIndex, offsetBy: 2))
+                return path.substring(from: path.index(path.startIndex, offsetBy: 2))
               }
               return path
             }
diff --git a/src/Tulsi/WizardSubviewProtocol.swift b/src/Tulsi/WizardSubviewProtocol.swift
index 5b748d2..b079103 100644
--- a/src/Tulsi/WizardSubviewProtocol.swift
+++ b/src/Tulsi/WizardSubviewProtocol.swift
@@ -18,7 +18,7 @@
 @objc
 protocol WizardSubviewProtocol {
   /// Informs the receiver of the enclosing WizardViewController.
-  weak var presentingWizardViewController: ConfigEditorWizardViewController? { get set }
+  var presentingWizardViewController: ConfigEditorWizardViewController? { get set }
 
   /// Invoked when the wizard subview is about to become active due to a "next" navigation.
   @objc optional func wizardSubviewWillActivateMovingForward()
diff --git a/src/TulsiGenerator/BuildLabel.swift b/src/TulsiGenerator/BuildLabel.swift
index 1254779..df5b6de 100644
--- a/src/TulsiGenerator/BuildLabel.swift
+++ b/src/TulsiGenerator/BuildLabel.swift
@@ -37,7 +37,7 @@
     }
 
     if package.hasPrefix("//") {
-      package.removeSubrange(Range(package.startIndex ..< package.characters.index(package.startIndex, offsetBy: 2)))
+      package.removeSubrange(Range(package.startIndex ..< package.index(package.startIndex, offsetBy: 2)))
     }
     if package.isEmpty || package.hasSuffix("/") {
       return ""
diff --git a/src/TulsiGenerator/PBXProjSerializer.swift b/src/TulsiGenerator/PBXProjSerializer.swift
index 55e7f57..e78851b 100644
--- a/src/TulsiGenerator/PBXProjSerializer.swift
+++ b/src/TulsiGenerator/PBXProjSerializer.swift
@@ -378,7 +378,7 @@
   // string encodings vary from region to region, this representation makes the format fragile.
   // You may see strings containing unreadable sequences of ASCII characters; these are used to
   // represent Unicode characters.
-  let valueRange = NSMakeRange(0, val.characters.count)
+  let valueRange = NSMakeRange(0, val.count)
   if unquotedSerializableStringRegex.firstMatch(in: val, options: NSRegularExpression.MatchingOptions.anchored, range: valueRange) != nil {
     return val
   } else {
diff --git a/src/TulsiGenerator/PBXTargetGenerator.swift b/src/TulsiGenerator/PBXTargetGenerator.swift
index 862432d..f9d7baa 100644
--- a/src/TulsiGenerator/PBXTargetGenerator.swift
+++ b/src/TulsiGenerator/PBXTargetGenerator.swift
@@ -378,7 +378,7 @@
     // If outputFolder contains workspaceRoot, return a relative group with the path from
     // outputFolder to workspaceRoot
     if workspaceRoot.hasPrefix(slashTerminatedOutputFolder) {
-      let index = workspaceRoot.characters.index(workspaceRoot.startIndex, offsetBy: slashTerminatedOutputFolder.characters.count)
+      let index = workspaceRoot.index(workspaceRoot.startIndex, offsetBy: slashTerminatedOutputFolder.count)
       let relativePath = workspaceRoot.substring(from: index)
       return PBXGroup(name: "mainGroup",
                       path: relativePath,
@@ -389,7 +389,7 @@
     // If workspaceRoot contains outputFolder, return a relative group using .. to walk up to
     // workspaceRoot from outputFolder.
     if outputFolder.hasPrefix(slashTerminatedWorkspaceRoot) {
-      let index = outputFolder.characters.index(outputFolder.startIndex, offsetBy: slashTerminatedWorkspaceRoot.characters.count + 1)
+      let index = outputFolder.index(outputFolder.startIndex, offsetBy: slashTerminatedWorkspaceRoot.count + 1)
       let pathToWalkBackUp = outputFolder.substring(from: index) as NSString
       let numberOfDirectoriesToWalk = pathToWalkBackUp.pathComponents.count
       let relativePath = [String](repeating: "..", count: numberOfDirectoriesToWalk).joined(separator: "/")
@@ -843,7 +843,7 @@
   /// given set of pathFilters.
   private func pathFilterFunc(_ pathFilters: Set<String>) -> (String) -> Bool {
     let recursiveFilters = Set<String>(pathFilters.filter({ $0.hasSuffix("/...") }).map() {
-      $0.substring(to: $0.characters.index($0.endIndex, offsetBy: -3))
+      $0.substring(to: $0.index($0.endIndex, offsetBy: -3))
     })
 
     func includePath(_ path: String) -> Bool {
@@ -1210,9 +1210,9 @@
       // TODO(abaire): Add support for shell tokenization as advertised in the Bazel build
       //     encyclopedia.
       if opt.hasPrefix("-D") {
-        localDefines.insert(opt.substring(from: opt.characters.index(opt.startIndex, offsetBy: 2)))
+        localDefines.insert(opt.substring(from: opt.index(opt.startIndex, offsetBy: 2)))
       } else if opt.hasPrefix("-I") {
-        var path = opt.substring(from: opt.characters.index(opt.startIndex, offsetBy: 2))
+        var path = opt.substring(from: opt.index(opt.startIndex, offsetBy: 2))
         if !path.hasPrefix("/") {
           path = "$(\(PBXTargetGenerator.BazelWorkspaceSymlinkVarName))/\(path)"
         }
@@ -1453,8 +1453,8 @@
 
   static func indexerNameForTargetName(_ targetName: String, hash: Int, suffix: String?) -> String {
     let normalizedTargetName: String
-    if targetName.characters.count > MaxIndexerNameLength {
-      let endIndex = targetName.characters.index(targetName.startIndex, offsetBy: MaxIndexerNameLength - 4)
+    if targetName.count > MaxIndexerNameLength {
+      let endIndex = targetName.index(targetName.startIndex, offsetBy: MaxIndexerNameLength - 4)
       normalizedTargetName = targetName.substring(to: endIndex) + "_etc"
     } else {
       normalizedTargetName = targetName
diff --git a/src/TulsiGenerator/XcodeProjectGenerator.swift b/src/TulsiGenerator/XcodeProjectGenerator.swift
index 319465c..27582eb 100644
--- a/src/TulsiGenerator/XcodeProjectGenerator.swift
+++ b/src/TulsiGenerator/XcodeProjectGenerator.swift
@@ -1132,8 +1132,6 @@
 
       func addPath<T: Collection>(_ pathComponents: T)
                   where T.SubSequence : Collection,
-                  T.SubSequence.Iterator.Element == T.Iterator.Element,
-                  T.SubSequence.SubSequence == T.SubSequence,
                   T.Iterator.Element == String {
         guard let firstComponent = pathComponents.first else {
           return
diff --git a/src/TulsiGeneratorTests/PBXTargetGeneratorTests.swift b/src/TulsiGeneratorTests/PBXTargetGeneratorTests.swift
index ec1b601..ac8e43f 100644
--- a/src/TulsiGeneratorTests/PBXTargetGeneratorTests.swift
+++ b/src/TulsiGeneratorTests/PBXTargetGeneratorTests.swift
@@ -2435,7 +2435,7 @@
     XCTAssertEqual(targets.count, 1)
 
     let resultingTarget = targets.values.first!
-    XCTAssertLessThan(resultingTarget.name.characters.count, 255)
+    XCTAssertLessThan(resultingTarget.name.count, 255)
 
     validateIndexerTarget(resultingTarget.name,
                           sourceFileNames: sourceFiles1,
@@ -2474,7 +2474,7 @@
     XCTAssertEqual(targets.count, 1)
 
     let resultingTarget = targets.values.first!
-    XCTAssertLessThan(resultingTarget.name.characters.count, 255)
+    XCTAssertLessThan(resultingTarget.name.count, 255)
 
     validateIndexerTarget(resultingTarget.name,
                           sourceFileNames: sourceFiles1 + sourceFiles2,
