diff --git a/src/Gargantext/Components/Forest.purs b/src/Gargantext/Components/Forest.purs
index ef9561e8081a21cbe98a767d11aa703ce938d593..50300d91c3e25f6d23a1a6d89d283c1e7068f19c 100644
--- a/src/Gargantext/Components/Forest.purs
+++ b/src/Gargantext/Components/Forest.purs
@@ -91,7 +91,7 @@ forestCpt = here.component "forest" cpt where
           common = RX.pick props :: Record Common
           cp handed' sessions' _ =
             pure $ H.div { className: "forest" }
-              (A.cons (plus handed' showLogin backend) (trees handed' sessions'))
+              (A.cons (plus handed' showLogin) (trees handed' sessions'))
           trees handed' sessions' = (tree handed') <$> unSessions sessions'
           tree handed' s@(Session {treeId}) =
             treeLoader { forestOpen
@@ -104,8 +104,8 @@ forestCpt = here.component "forest" cpt where
                        , session: s
                        , tasks } []
 
-plus :: Handed -> T.Box Boolean -> T.Box (Maybe Backend) -> R.Element
-plus handed showLogin backend = H.div { className: "row" }
+plus :: Handed -> T.Box Boolean -> R.Element
+plus handed showLogin = H.div { className: "row" }
   [ H.button { className: buttonClass
              , on: { click }
              , title }
diff --git a/src/Gargantext/Components/Forest/Tree.purs b/src/Gargantext/Components/Forest/Tree.purs
index 5c1ffcd3fce91e235ae176230fc44f0556cf4ecb..c3911e5e18fe745b1b6dcd7d5a411e0be43b0e4a 100644
--- a/src/Gargantext/Components/Forest/Tree.purs
+++ b/src/Gargantext/Components/Forest/Tree.purs
@@ -54,7 +54,7 @@ type Global =
   ( frontends  :: Frontends
   , handed     :: Handed
   , route      :: T.Box AppRoute
- , tasks       :: T.Box GAT.Storage
+  , tasks       :: T.Box GAT.Storage
   | Universal )
 
 -- Shared by every component here
@@ -102,20 +102,18 @@ treeCpt = here.component "tree" cpt where
   cpt p@{ session, tree: NTree (LNode { id, name, nodeType }) children } _ = do
     setPopoverRef <- R.useRef Nothing
     folderOpen <- T2.useMemberBox nodeId p.forestOpen
-    open <- T.useLive T.unequal folderOpen
-    pure $ H.ul { className: ulClass }
-      [ H.div { className: divClass } -- TODO: naughty div should not be in a ul
-        [ H.li { className: childrenClass children }
-          [ nodeSpan (nsprops { folderOpen, name, id, nodeType, setPopoverRef, isLeaf })
-            (renderChildren open)
-          ]
+    folderOpen' <- T.useLive T.unequal folderOpen
+    pure $ H.ul { className: ulClass <> " " <> handedClass }
+      [ H.li { className: childrenClass children }
+        [ nodeSpan (nsprops { folderOpen, name, id, nodeType, setPopoverRef, isLeaf })
+          (renderChildren folderOpen')
         ]
       ]
     where
       isLeaf = A.null children
       nodeId = mkNodeId session id
       ulClass  = switchHanded "ml" "mr" p.handed <> "-auto tree"
-      divClass = switchHanded "left" "right" p.handed <> "handed"
+      handedClass = switchHanded "left" "right" p.handed <> "handed"
       children' = A.sortWith fTreeID pubChildren
       pubChildren = if isPublic nodeType then map (map pub) children else children
       renderChildren false = []
diff --git a/src/Gargantext/Components/Router.purs b/src/Gargantext/Components/Router.purs
index f32c56a17760abc48204192fa9a25362457dac1e..b4f23468dfdd053817db7ca8be43a351a041a429 100644
--- a/src/Gargantext/Components/Router.purs
+++ b/src/Gargantext/Components/Router.purs
@@ -59,11 +59,10 @@ routerCpt = here.component "router" cpt where
     let sessionProps sId = Record.merge { session, sessionId: sId } props
     let sessionNodeProps sId nId = Record.merge { nodeId: nId } $ sessionProps sId
 
-    showLogin <- T.useLive T.unequal boxes.showLogin
     route' <- T.useLive T.unequal boxes.route
 
     pure $ R.fragment
-      [ if showLogin then login' boxes else H.div {} []
+      [ loginModal { boxes } []
       , case route' of
         GR.Annuaire s n           -> annuaire (sessionNodeProps s n) []
         GR.ContactPage s a n      -> contact (Record.merge { annuaireId: a } $ sessionNodeProps s n) []
@@ -88,6 +87,22 @@ routerCpt = here.component "router" cpt where
         GR.UserPage s n           -> user (sessionNodeProps s n) []
       ]
 
+
+type LoginModalProps = (
+  boxes :: Boxes
+  )
+
+loginModal :: R2.Component LoginModalProps
+loginModal = R.createElement loginModalCpt
+
+loginModalCpt :: R.Component LoginModalProps
+loginModalCpt = here.component "loginModal" cpt
+  where
+    cpt { boxes: boxes@{ showLogin } } _ = do
+        showLogin' <- T.useLive T.unequal showLogin
+
+        pure $ if showLogin' then login' boxes else H.div {} []
+
 forested :: R2.Component Props
 forested = R.createElement forestedCpt