diff --git a/Library/Core/Core+Migration.swift b/Library/Core/Core+Migration.swift
new file mode 100644
index 0000000..0d48eea
--- /dev/null
+++ b/Library/Core/Core+Migration.swift
@@ -0,0 +1,41 @@
+//
+//  Core+Migration.swift
+//  R.swift.Library
+//
+//  Created by Tom Lokhorst on 2016-09-08.
+//  Copyright © 2016 Mathijs Kadijk. All rights reserved.
+//
+
+import Foundation
+
+// Renames from Swift 2 to Swift 3
+
+public extension StoryboardSegueIdentifier {
+
+  @available(*, unavailable, renamed: "storyboardSegue(withSource:)")
+  public func storyboardSegueWithSource(_ sourceViewController: Source)
+    -> StoryboardSegue<Segue, Source, Destination>
+  {
+    fatalError()
+  }
+}
+
+public extension TypedStoryboardSegueInfo {
+
+  @available(*, unavailable, renamed: "destination")
+  public var destinationViewController: Destination { fatalError() }
+
+  @available(*, unavailable, renamed: "source")
+  public var sourceViewController: Source { fatalError() }
+}
+
+public extension StoryboardSegue {
+
+  @available(*, unavailable, renamed: "source")
+  public var sourceViewController: Source { fatalError() }
+
+  @available(*, unavailable, renamed: "init(identifier:source:)")
+  public init(identifier: StoryboardSegueIdentifier<Segue, Source, Destination>, sourceViewController: Source) {
+    fatalError()
+  }
+}
diff --git a/Library/Foundation/Foundation+Migration.swift b/Library/Foundation/Foundation+Migration.swift
new file mode 100644
index 0000000..758794e
--- /dev/null
+++ b/Library/Foundation/Foundation+Migration.swift
@@ -0,0 +1,25 @@
+//
+//  Foundation+Migration.swift
+//  R.swift.Library
+//
+//  Created by Tom Lokhorst on 2016-09-08.
+//  Copyright © 2016 Mathijs Kadijk. All rights reserved.
+//
+
+import Foundation
+
+// Renames from Swift 2 to Swift 3
+
+public extension Bundle {
+
+  @available(*, unavailable, renamed: "url(forResource:)")
+  public func URLForResource(_ resource: FileResourceType) -> URL? {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "path(forResource:)")
+  public func pathForResource(_ resource: FileResourceType) -> String? {
+    fatalError()
+  }
+}
diff --git a/Library/UIKit/UIKit+Migration.swift b/Library/UIKit/UIKit+Migration.swift
new file mode 100644
index 0000000..6f94206
--- /dev/null
+++ b/Library/UIKit/UIKit+Migration.swift
@@ -0,0 +1,141 @@
+//
+//  UIKit+Migration.swift
+//  R.swift.Library
+//
+//  Created by Tom Lokhorst on 2016-09-08.
+//  Copyright © 2016 Mathijs Kadijk. All rights reserved.
+//
+
+import UIKit
+
+// Renames from Swift 2 to Swift 3
+
+public extension NibResourceType {
+
+  @available(*, unavailable, renamed: "instantiate(withOwner:options:)")
+  public func instantiateWithOwner(_ ownerOrNil: AnyObject?, options optionsOrNil: [NSObject : AnyObject]? = nil) -> [AnyObject] {
+    fatalError()
+  }
+}
+
+
+public extension StoryboardResourceWithInitialControllerType {
+
+  @available(*, unavailable, renamed: "instantiateInitialViewController")
+  public func initialViewController() -> InitialController? {
+    fatalError()
+  }
+}
+
+public extension UICollectionView {
+
+  @available(*, unavailable, renamed: "dequeueReusableCell(withReuseIdentifier:for:)")
+  public func dequeueReusableCellWithReuseIdentifier<Identifier: ReuseIdentifierType>(_ identifier: Identifier, forIndexPath indexPath: IndexPath) -> Identifier.ReusableType?
+    where Identifier.ReusableType: UICollectionReusableView
+  {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "dequeueReusableSupplementaryView(ofKind:withReuseIdentifier:for:)")
+  public func dequeueReusableSupplementaryViewOfKind<Identifier: ReuseIdentifierType>(_ elementKind: String, withReuseIdentifier identifier: Identifier, forIndexPath indexPath: IndexPath) -> Identifier.ReusableType?
+    where Identifier.ReusableType: UICollectionReusableView
+  {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "register")
+  public func registerNibs<Resource: NibResourceType>(_ nibResources: [Resource])
+    where Resource: ReuseIdentifierType, Resource.ReusableType: UICollectionViewCell
+  {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "register")
+  public func registerNib<Resource: NibResourceType>(_ nibResource: Resource)
+    where Resource: ReuseIdentifierType, Resource.ReusableType: UICollectionViewCell
+  {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "register")
+  public func registerNibs<Resource: NibResourceType>(_ nibResources: [Resource], forSupplementaryViewOfKind kind: String)
+    where Resource: ReuseIdentifierType, Resource.ReusableType: UICollectionReusableView
+  {
+    fatalError()
+  }
+
+  @available(*, unavailable, renamed: "register")
+  public func registerNib<Resource: NibResourceType>(_ nibResource: Resource, forSupplementaryViewOfKind kind: String)
+    where Resource: ReuseIdentifierType, Resource.ReusableType: UICollectionReusableView
+  {
+    fatalError()
+  }
+}
+
+public extension UITableView {
+
+
+  @available(*, unavailable, renamed: "dequeueReusableCell(withIdentifier:for:)")
+  public func dequeueReusableCellWithIdentifier<Identifier: ReuseIdentifierType>(_ identifier: Identifier, forIndexPath indexPath: IndexPath) -> Identifier.ReusableType?
+    where Identifier.ReusableType: UITableViewCell
+  {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "dequeueReusableCell(withIdentifier:)")
+  public func dequeueReusableCellWithIdentifier<Identifier: ReuseIdentifierType>(_ identifier: Identifier) -> Identifier.ReusableType?
+    where Identifier.ReusableType: UITableViewCell
+  {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "dequeueReusableHeaderFooterView(withIdentifier:)")
+  public func dequeueReusableHeaderFooterViewWithIdentifier<Identifier: ReuseIdentifierType>(_ identifier: Identifier) -> Identifier.ReusableType?
+    where Identifier.ReusableType: UITableViewHeaderFooterView
+  {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "register")
+  public func registerNibs<Resource: NibResourceType>(_ nibResources: [Resource]) where Resource: ReuseIdentifierType, Resource.ReusableType: UITableViewCell
+  {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "register")
+  public func registerNib<Resource: NibResourceType>(_ nibResource: Resource) where Resource: ReuseIdentifierType, Resource.ReusableType: UITableViewCell
+  {
+    fatalError()
+  }
+
+
+  @available(*, unavailable, renamed: "registerHeaderFooterView")
+  public func registerNibForHeaderFooterView<Resource: NibResourceType>(_ nibResource: Resource) where Resource: ReuseIdentifierType, Resource.ReusableType: UIView
+  {
+    fatalError()
+  }
+}
+
+public extension SeguePerformerType {
+
+  @available(*, unavailable, renamed: "performSegue(withIdentifier:sender:)")
+  func performSegueWithIdentifier(_ identifier: String, sender: Any?) {
+    fatalError()
+  }
+}
+
+public extension SeguePerformerType {
+
+  @available(*, unavailable, renamed: "performSegue(withIdentifier:sender:)")
+  public func performSegueWithIdentifier<Segue, Destination>(_ identifier: StoryboardSegueIdentifier<Segue, Self, Destination>, sender: Any?) {
+    fatalError()
+  }
+}
diff --git a/R.swift.Library.xcodeproj/project.pbxproj b/R.swift.Library.xcodeproj/project.pbxproj
index 532953c..fa8c471 100644
--- a/R.swift.Library.xcodeproj/project.pbxproj
+++ b/R.swift.Library.xcodeproj/project.pbxproj
@@ -67,6 +67,9 @@
 		E250BE951CCBF58200CC71DE /* ColorResource+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = E250BE931CCBCEB100CC71DE /* ColorResource+UIKit.swift */; };
 		E250BE971CCBF60300CC71DE /* StringResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E250BE961CCBF60300CC71DE /* StringResource.swift */; };
 		E250BE991CCBF7E900CC71DE /* StringResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E250BE961CCBF60300CC71DE /* StringResource.swift */; };
+		E2B0AF361D8142A400A7196C /* Core+Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2B0AF351D8142A400A7196C /* Core+Migration.swift */; };
+		E2B0AF381D8142BF00A7196C /* UIKit+Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2B0AF371D8142BF00A7196C /* UIKit+Migration.swift */; };
+		E2B0AF3A1D81483900A7196C /* Foundation+Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2B0AF391D81483900A7196C /* Foundation+Migration.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -122,6 +125,9 @@
 		E22D43661C95EEA100692FFF /* ColorResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorResource.swift; sourceTree = "<group>"; };
 		E250BE931CCBCEB100CC71DE /* ColorResource+UIKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ColorResource+UIKit.swift"; sourceTree = "<group>"; };
 		E250BE961CCBF60300CC71DE /* StringResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringResource.swift; sourceTree = "<group>"; };
+		E2B0AF351D8142A400A7196C /* Core+Migration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Core+Migration.swift"; sourceTree = "<group>"; };
+		E2B0AF371D8142BF00A7196C /* UIKit+Migration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIKit+Migration.swift"; sourceTree = "<group>"; };
+		E2B0AF391D81483900A7196C /* Foundation+Migration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Foundation+Migration.swift"; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -174,6 +180,7 @@
 				D543F9C31C1498FB00D16A0C /* UITableView+ReuseIdentifierProtocol.swift */,
 				D543F9C71C14995800D16A0C /* UIViewController+NibResource.swift */,
 				D543F9C91C14998800D16A0C /* UIViewController+StoryboardSegueIdentifierProtocol.swift */,
+				E2B0AF371D8142BF00A7196C /* UIKit+Migration.swift */,
 			);
 			path = UIKit;
 			sourceTree = "<group>";
@@ -193,6 +200,7 @@
 				D51335261C959DF20014C9D4 /* StoryboardViewControllerResource.swift */,
 				E250BE961CCBF60300CC71DE /* StringResource.swift */,
 				D53F19231C229D7200AE2FAD /* Validatable.swift */,
+				E2B0AF351D8142A400A7196C /* Core+Migration.swift */,
 			);
 			path = Core;
 			sourceTree = "<group>";
@@ -202,6 +210,7 @@
 			children = (
 				D56DC7721C42B65C00623437 /* Bundle+FileResource.swift */,
 				E20F34A61C92B44100338F81 /* Data+FileResource.swift */,
+				E2B0AF391D81483900A7196C /* Foundation+Migration.swift */,
 			);
 			path = Foundation;
 			sourceTree = "<group>";
@@ -481,6 +490,7 @@
 				D543F9BD1C14980600D16A0C /* ReuseIdentifierProtocol.swift in Sources */,
 				D543F9C11C14984300D16A0C /* NibResource.swift in Sources */,
 				D553F5851C44157000885232 /* ImageResource.swift in Sources */,
+				E2B0AF381D8142BF00A7196C /* UIKit+Migration.swift in Sources */,
 				E20F34A71C92B44100338F81 /* Data+FileResource.swift in Sources */,
 				D57E1EB51C3D774000DDA68F /* UIFont+FontResource.swift in Sources */,
 				D5588CAB1C3F9DBE00912F97 /* UINib+NibResource.swift in Sources */,
@@ -490,7 +500,9 @@
 				D543F9C61C14992000D16A0C /* UICollectionView+ReuseIdentifierProtocol.swift in Sources */,
 				D543F9BF1C14983100D16A0C /* StoryboardSegueIdentifierProtocol.swift in Sources */,
 				D543F9C81C14995800D16A0C /* UIViewController+NibResource.swift in Sources */,
+				E2B0AF3A1D81483900A7196C /* Foundation+Migration.swift in Sources */,
 				D5E435A91C3CFB460091090C /* NibResource+UIKit.swift in Sources */,
+				E2B0AF361D8142A400A7196C /* Core+Migration.swift in Sources */,
 				E250BE971CCBF60300CC71DE /* StringResource.swift in Sources */,
 				D543F9CF1C149C0A00D16A0C /* TypedStoryboardSegueInfo+UIStoryboardSegue.swift in Sources */,
 				E250BE941CCBCEB100CC71DE /* ColorResource+UIKit.swift in Sources */,