 
 }
 
-
 //MARK: - ScreenTwoViewController
 
-extension ScreenTwoViewController {
-    override class var storyboardIdentifier:String? { return "ScreenTwoViewController" }
-    class func instantiateFromStoryboard(storyboard: Storyboards) -> ScreenTwoViewController! {
-        return storyboard.instantiateViewControllerWithIdentifier(self.storyboardIdentifier!) as? ScreenTwoViewController
-    }
-}
-
-
 //MARK: - ScreenOneViewController
-
-extension ScreenOneViewController {
-    override class var storyboardIdentifier:String? { return "ScreenOneViewController" }
-    class func instantiateFromStoryboard(storyboard: Storyboards) -> ScreenOneViewController! {
-        return storyboard.instantiateViewControllerWithIdentifier(self.storyboardIdentifier!) as? ScreenOneViewController
-    }
-}
-

import UIKit

//MARK: - Storyboards
enum Storyboards: String {
    case Main = "Main"

    private var instance:UIStoryboard {
        return UIStoryboard(name: self.rawValue, bundle: nil)
    }

    func instantiateInitialViewController() -> UIViewController? {
        switch (self) {
        case Main:
            return self.instance.instantiateInitialViewController() as! UINavigationController
        default:
            return self.instance.instantiateInitialViewController() as? UIViewController
        }
    }

    func instantiateViewControllerWithIdentifier(identifier: String) -> UIViewController {
        return self.instance.instantiateViewControllerWithIdentifier(identifier) as! UIViewController
    }
}


extension UIStoryboardSegue: SegueProtocol {
}


//MARK: - MainViewController
extension UIStoryboardSegue {
    func selection() -> MainViewController.Segue? {
        if let identifier = self.identifier {
            return MainViewController.Segue(rawValue: identifier)
        }
        return nil
    }
}

