     weak var delegate: SplitViewCoordinatorDelegate?
     
     // MARK: - Setup
-    
-    // TODO: Improve sessions injection
-    // at the moment the session is not used, see TabBarCoordinator `init`.
-    init(router: RootRouterType, session: MXSession?) {
-        self.rootRouter = router
-        self.session = session
+            
+    init(parameters: SplitViewCoordinatorParameters) {
+        self.parameters = parameters
         
         let splitViewController = RiotSplitViewController()
         splitViewController.preferredDisplayMode = .allVisible

        self.masterPresentable = tabBarCoordinator
        self.detailNavigationController = detailNavigationController
        
        self.rootRouter.setRootModule(self.splitViewController)
    }
    
    func update(with session: MXSession) {
        self.session = session
    }
    
    func toPresentable() -> UIViewController {        


import Foundation

/// SplitViewCoordinatorParameters input parameters
class SplitViewCoordinatorParameters {
    
    let router: RootRouterType
    let userSessionsService: UserSessionsService
    
    init(router: RootRouterType, userSessionsService: UserSessionsService) {
        self.router = router
        self.userSessionsService = userSessionsService
    }
}

final class SplitViewCoordinator: NSObject, SplitViewCoordinatorType {
    
    // MARK: - Properties
    
    // MARK: Private    
    
    private let parameters: SplitViewCoordinatorParameters
    
    private let splitViewController: UISplitViewController
    
