         }
     }
     
-    func selectTopRouter() {
-        selectedRouter = topRouter
+    //MARK: - Actions
+    
+    func topAction() {
+        selectedRouter = TransitionRouter(type: .top)
     }
     
-    func selectLeftRouter() {
-        selectedRouter = leftRouter
+    func leftAction() {
+        selectedRouter = TransitionRouter(type: .left)
     }
     
-    func selectBottomRouter() {
-        selectedRouter = bottomRouter
+    func bottomAction() {
+        selectedRouter = TransitionRouter(type: .bottom)
     }
     
-    func selectRightRouter() {
-        selectedRouter = rightRouter
+    func rightAction() {
+        selectedRouter = TransitionRouter(type: .right)
     }
 }
 


class FirstViewController: UIViewController {
    
    private let topRouter = TransitionRouter(type: .top)
    private let leftRouter = TransitionRouter(type: .left)
    private let leftInteractiveRouter = TransitionRouter(type: .left, interactive: true)
    private let rightInteractiveRouter = TransitionRouter(type: .right, interactive: true)
    private let bottomRouter = TransitionRouter(type: .bottom)
    private let rightRouter = TransitionRouter(type: .right)
    private let fadeRouter = TransitionRouter(type: .custom(animator: FadeTransitionAnimator()))
    
    private var selectedRouter: TransitionRouter? {
        didSet {

            }
            .update { recognizer -> CGFloat in
                let translation = recognizer.translation(in: recognizer.view!)
                return translation.x / recognizer.view!.bounds.width * 0.5  * -1
            }
        view.addGestureRecognizer(rightRecognizer)
    }
