     ///     let mainStoryboard = Storyboard(storyboard: Storyboard.StoryboardName.main)
     ///
     fileprivate convenience init<T: RawRepresentable>(storyboard: T, bundle: Bundle? = nil) where T.RawValue == String {
-       #if os(iOS) || os(tvOS)
+      #if os(iOS) || os(tvOS)
         self.init(name: storyboard.rawValue, bundle: bundle)
       #elseif os(macOS)
         self.init(name: NSStoryboard.Name(rawValue: storyboard.rawValue), bundle: bundle)


    /// **Mechanica**
    ///
    ///   Instantiates and returns a NSViewController conforming to `StoryboardIdentifiable`.
    ///   - Note: In Xcode, set as **Storyboard ID** the NSViewController class name.
    ///
    ///   ```

      #if os(iOS) || os(tvOS)
        return Storyboard(name: mainStoryboardName, bundle: Bundle.main)
      #elseif os(macOS)
        return Storyboard(name: NSStoryboard.Name(rawValue: mainStoryboardName), bundle: Bundle.main)
      #endif

    }
  }

  // MARK: - StoryboardInitializable

  /// **Mechanica**
  ///
  /// The protocol `StoryboardInitializable` can be used to fetch the appropriate storyboard and construct a view/window controller instance.
  public protocol StoryboardInitializable: class {
    /// **Mechanica**
    ///
    /// The name of the storyboard resource file without the filename extension.
    /// By default the *storyboardName* is *Main*.
    static var storyboardName: String { get }

    /// **Mechanica**
    ///
    /// The bundle containing the storyboard file and its related resources.
    /// By default the *storyboardBundle* is *nil*.
    static var storyboardBundle: Bundle? { get }

    /// **Mechanica**
    ///
    /// An identifier string that uniquely identifies the view/window controller in the storyboard file.
    /// By default the *storyboardIdentifier* (**Storyboard ID**) is the name of the class.
    static var storyboardIdentifier: String { get }

    //static func makeFromStoryboard() -> Self
  }

  extension StoryboardInitializable {

    public static var storyboardName: String {
      return "Main"
    }

    public static var storyboardBundle: Bundle? {
      return nil
    }

    public static var storyboardIdentifier: String {
      return String(describing: self)
    }

    /// **Mechanica**
    ///
    /// Constructs a view/window controller instance fetching the appropriate storyboard.
    public static func makeFromStoryboard() -> Self {
      let storyboard = UIStoryboard(name: storyboardName, bundle: storyboardBundle)
      return storyboard.instantiateViewController (
        withIdentifier: storyboardIdentifier) as! Self
    }

  }

#if os(iOS) || os(tvOS)
  extension UIViewController : StoryboardInitializable {}
  #elseif os(macOS)
  extension NSViewController : StoryboardInitializable {}
  extension NSWindowController : StoryboardInitializable {}
#endif

  extension Storyboard {
