     
     public override func perform() {
         
-        let source = sourceViewController as! SDSlideMenuViewController
-        let destination = destinationViewController as UIViewController
-        
-        source.addMenuRootViewController(destination)
-        
-    }
-    
+        sourceViewController.slideMenuViewController?.addMenuRootViewController(destinationViewController)
+    }
 }
 
 public class SDContentViewControllerSegue: UIStoryboardSegue {
     
     public override func perform() {
         
-        let source = (sourceViewController as UIViewController).slideMenuViewController
-        let destination = destinationViewController as UIViewController
-        
-        source.addContentViewController(destination)
-        
-    }
-    
-}
+        sourceViewController.slideMenuViewController?.addContentViewController(destinationViewController)
+    }
+}

    
    @IBAction public func menuToggle(sender: AnyObject?) {
        
        self.slideMenuViewController._menuToggle(sender)
    }
}



extension UIViewController {
    
    public var slideMenuViewController: SDSlideMenuViewController? {
        
        return self as? SDSlideMenuViewController ?? self.parentViewController?.slideMenuViewController
    }
    
    private func equalTo(otherViewController: UIViewController) -> Bool {
