diff --git a/src/Gargantext/AsyncTasks.purs b/src/Gargantext/AsyncTasks.purs
index 2ab758b601631111de44969ee6037c41c6749e4b..daa2b67179555f136d53674874782ef8f9875331 100644
--- a/src/Gargantext/AsyncTasks.purs
+++ b/src/Gargantext/AsyncTasks.purs
@@ -55,8 +55,8 @@ removeTaskFromList ts (GT.AsyncTaskWithType { task: GT.AsyncTask { id: id' } })
   A.filter (\(GT.AsyncTaskWithType { task: GT.AsyncTask { id: id'' } }) -> id' /= id'') ts
 
 type ReductorProps = (
-    reloadForest :: T.Box T2.Reload
-  , reloadRoot   :: T.Box T2.Reload
+    reloadForest :: T2.ReloadS
+  , reloadRoot   :: T2.ReloadS
   , storage      :: Storage
   )
 
diff --git a/src/Gargantext/Components/App/Data.purs b/src/Gargantext/Components/App/Data.purs
index f252f1f2c095f2b601d3c3bf3262eccb5c780b88..11fc2ff8724bd8e82c4f8bbf38b509a1c5e29379 100644
--- a/src/Gargantext/Components/App/Data.purs
+++ b/src/Gargantext/Components/App/Data.purs
@@ -20,8 +20,9 @@ type App =
   , forestOpen     :: OpenNodes
   , graphVersion   :: T2.Reload
   , handed         :: Handed
-  , reloadForest   :: Int
-  , reloadRoot     :: Int
+  , reloadForest   :: T2.Reload
+  , reloadMainPage :: T2.Reload
+  , reloadRoot     :: T2.Reload
   , route          :: AppRoute
   , sessions       :: Sessions
   , showCorpus     :: Boolean
@@ -41,6 +42,7 @@ emptyApp =
   , graphVersion   : T2.newReload
   , handed         : RightHanded
   , reloadForest   : T2.newReload
+  , reloadMainPage : T2.newReload
   , reloadRoot     : T2.newReload
   , route          : Home
   , sessions       : Sessions.empty
@@ -59,8 +61,9 @@ type Boxes =
   , forestOpen     :: T.Box OpenNodes
   , graphVersion   :: T2.ReloadS
   , handed         :: T.Box Handed
-  , reloadForest   :: T.Box T2.Reload
-  , reloadRoot     :: T.Box T2.Reload
+  , reloadForest   :: T2.ReloadS
+  , reloadMainPage :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS
   , route          :: T.Box AppRoute
   , sessions       :: T.Box Sessions
   , showCorpus     :: T.Box Boolean
diff --git a/src/Gargantext/Components/Forest.purs b/src/Gargantext/Components/Forest.purs
index c4a14b8df3a13f2f72b0b9e6a4d44a0789cb00b1..215f77a5e1740e4a80171ca29e04263f8b9cf2cc 100644
--- a/src/Gargantext/Components/Forest.purs
+++ b/src/Gargantext/Components/Forest.purs
@@ -32,16 +32,17 @@ here = R2.here "Gargantext.Components.Forest"
 
 -- Shared by components here with Tree
 type Common = 
-  ( frontends     :: Frontends
-  , handed        :: T.Box Handed
-  , reloadRoot    :: T.Box T2.Reload
-  , route         :: T.Box AppRoute
+  ( frontends      :: Frontends
+  , handed         :: T.Box Handed
+  , reloadMainPage :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS
+  , route          :: T.Box AppRoute
   )
 
 type Props =
   ( backend      :: T.Box (Maybe Backend)
   , forestOpen   :: T.Box OpenNodes
-  , reloadForest :: T.Box T2.Reload
+  , reloadForest :: T2.ReloadS
   , sessions     :: T.Box Sessions
   , showLogin    :: T.Box Boolean
   , showTree     :: T.Box Boolean
@@ -64,6 +65,7 @@ forestCpt = here.component "forest" cpt where
             , frontends
             , handed
             , reloadForest
+            , reloadMainPage
             , reloadRoot
             , route
             , sessions
@@ -103,6 +105,7 @@ forestCpt = here.component "forest" cpt where
                        , frontends
                        , handed: handed'
                        , reload: reloadForest
+                       , reloadMainPage
                        , reloadRoot
                        , root: treeId
                        , route
@@ -160,7 +163,8 @@ forestLayoutMain = R.createElement forestLayoutMainCpt
 
 forestLayoutMainCpt :: R.Component Props
 forestLayoutMainCpt = here.component "forestLayoutMain" cpt where
-  cpt props children = pure $ forestLayoutRaw props [ mainPage {} children ]
+  cpt props@{ reloadMainPage } children =
+    pure $ forestLayoutRaw props [ mainPage { reloadMainPage } children ]
 
 forestLayoutRaw :: R2.Component Props
 forestLayoutRaw = R.createElement forestLayoutRawCpt
@@ -171,6 +175,7 @@ forestLayoutRawCpt = here.component "forestLayoutRaw" cpt where
         , forestOpen
         , frontends
         , reloadForest
+        , reloadMainPage
         , reloadRoot
         , route
         , sessions
@@ -190,6 +195,7 @@ forestLayoutRawCpt = here.component "forestLayoutRaw" cpt where
                  , forestOpen
                  , handed
                  , reloadForest
+                 , reloadMainPage
                  , reloadRoot
                  , route
                  , sessions
@@ -197,15 +203,20 @@ forestLayoutRawCpt = here.component "forestLayoutRaw" cpt where
                  , showLogin
                  , tasks } []
 
-mainPage :: R2.Component ()
+type MainPage =
+  ( reloadMainPage :: T2.ReloadS )
+
+mainPage :: R2.Component MainPage
 mainPage = R.createElement mainPageCpt
 
 -- mainPageCpt :: R.Memo ()
 -- mainPageCpt = R.memo (here.component "mainPage" cpt) where
-mainPageCpt :: R.Component ()
+mainPageCpt :: R.Component MainPage
 mainPageCpt = here.component "mainPage" cpt
   where
-    cpt _ children = do
+    cpt { reloadMainPage } children = do
+      reloadMainPage' <- T.useLive T.unequal reloadMainPage
+
       pure $ H.div { className: "col-md-10" }
         [ H.div { id: "page-wrapper" }
           [ H.div { className: "container-fluid" } children ]
diff --git a/src/Gargantext/Components/Forest/Tree.purs b/src/Gargantext/Components/Forest/Tree.purs
index e77a2ca4397c448d9572f9b6ff0e5b6d7d7d4d39..0c34a0046525fecff3fb640b1f7e8c1ee12ef170 100644
--- a/src/Gargantext/Components/Forest/Tree.purs
+++ b/src/Gargantext/Components/Forest/Tree.purs
@@ -6,7 +6,6 @@ import Data.Array as A
 import Data.Maybe (Maybe(..))
 import Data.Set as Set
 import Data.Traversable (traverse_, traverse)
-import Data.Tuple (snd)
 import DOM.Simple.Console (log, log2)
 import Effect (Effect)
 import Effect.Aff (Aff)
@@ -47,7 +46,8 @@ here = R2.here "Gargantext.Components.Forest.Tree"
 
 -- Shared by every component here + performAction + nodeSpan
 type Universal =
-  ( reloadRoot :: T.Box T2.Reload )
+  ( reloadMainPage :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS )
 
 -- Shared by every component here + nodeSpan
 type Global =
@@ -60,7 +60,7 @@ type Global =
 -- Shared by every component here
 type Common = (
    forestOpen :: T.Box OpenNodes
- , reload     :: T.Box T2.Reload
+ , reload     :: T2.ReloadS
  | Global
  )
 
@@ -90,7 +90,7 @@ getNodeTree session nodeId = get session $ GR.NodeAPI GT.Tree (Just nodeId) ""
 getNodeTreeFirstLevel :: Session -> ID -> Aff FTree
 getNodeTreeFirstLevel session nodeId = get session $ GR.TreeFirstLevel (Just nodeId) ""
 
-type NodeProps = ( reloadTree :: T.Box T2.Reload, session :: Session | Common )
+type NodeProps = ( reloadTree :: T2.ReloadS, session :: Session | Common )
 
 type TreeProps = ( tree :: FTree | NodeProps )
 
@@ -102,25 +102,18 @@ treeCpt = here.component "tree" cpt where
   cpt p@{ reload, session, tree: NTree (LNode { id, name, nodeType }) children } _ = do
     setPopoverRef <- R.useRef Nothing
     folderOpen <- T2.useMemberBox nodeId p.forestOpen
-    folderOpen' <- T.useLive T.unequal folderOpen
-    pure $ H.ul { className: ulClass <> " " <> handedClass }
-      [ H.li { className: childrenClass children }
+    pure $ H.ul { className: ulClass }
+      [ H.li { className: childrenClass children' }
         [ nodeSpan (nsprops { folderOpen, name, id, nodeType, setPopoverRef, isLeaf })
-          (renderChildren folderOpen')
+          [ renderChildren (Record.merge p { childProps: { children', folderOpen, render: tree } } ) [] ]
         ]
       ]
     where
       isLeaf = A.null children
       nodeId = mkNodeId session id
-      ulClass  = switchHanded "ml" "mr" p.handed <> "-auto tree"
-      handedClass = switchHanded "left" "right" p.handed <> "handed"
+      ulClass  = switchHanded "ml left" "mr right" p.handed <> "-auto tree handed"
       children' = A.sortWith fTreeID pubChildren
       pubChildren = if isPublic nodeType then map (map pub) children else children
-      renderChildren false = []
-      renderChildren true = map renderChild children' where
-        renderChild (NTree (LNode {id: cId}) _) = childLoader props [] where
-          props = Record.merge nodeProps { id: cId, render: tree }
-          nodeProps = RecordE.pick p :: Record NodeProps
       nsprops extra = Record.merge common extra' where
         common = RecordE.pick p :: Record NSCommon
         extra' = Record.merge extra { dispatch, reload } where
@@ -129,12 +122,49 @@ treeCpt = here.component "tree" cpt where
             spr = { setPopoverRef: extra.setPopoverRef }
   pub (LNode n@{ nodeType: t }) = LNode (n { nodeType = publicize t })
   childrenClass [] = "no-children"
-  childrenClass _ = "with-children"
+  childrenClass _  = "with-children"
+
+
+type ChildrenTreeProps =
+  ( childProps :: { children'  :: Array FTree
+                  , folderOpen :: T.Box Boolean
+                  , render     :: R2.Leaf TreeProps }
+  | TreeProps )
+
+
+renderChildren :: R2.Component ChildrenTreeProps
+renderChildren = R.createElement renderChildrenCpt
+
+renderChildrenCpt :: R.Component ChildrenTreeProps
+renderChildrenCpt = here.component "renderChildren" cpt where
+  cpt p@{ childProps: { folderOpen } } _ = do
+    folderOpen' <- T.useLive T.unequal folderOpen
+
+    if folderOpen' then
+      pure $ renderTreeChildren p []
+    else
+      pure $ H.div {} []
+
+renderTreeChildren :: R2.Component ChildrenTreeProps
+renderTreeChildren = R.createElement renderTreeChildrenCpt
+
+renderTreeChildrenCpt :: R.Component ChildrenTreeProps
+renderTreeChildrenCpt = here.component "renderTreeChildren" cpt where
+  cpt p@{ childProps: { children'
+                      , folderOpen
+                      , render } } _ = do
+    pure $ R.fragment (map renderChild children')
+
+    where
+      nodeProps = RecordE.pick p :: Record NodeProps
+      renderChild (NTree (LNode {id: cId}) _) = childLoader props [] where
+        props = Record.merge nodeProps { id: cId, render }
+
 
 --- The properties tree shares in common with performAction
 type PACommon =
   ( forestOpen   :: T.Box OpenNodes
-  , reloadTree   :: T.Box T2.Reload
+  , reloadTree   :: T2.ReloadS
   , session      :: Session
   , tasks        :: T.Box GAT.Storage
   , tree         :: FTree
@@ -155,7 +185,7 @@ childLoaderCpt :: R.Component ChildLoaderProps
 childLoaderCpt = here.component "childLoader" cpt where
   cpt p@{ render } _ = do
     reload <- T.useBox T2.newReload
-    let reloads = [ reload, p.reloadTree, p.reloadRoot ]
+    let reloads = [ reload, p.reloadRoot, p.reloadTree ]
     cache <- (A.cons p.id) <$> traverse (T.useLive T.unequal) reloads
     useLoader cache fetch (paint reload)
     where
diff --git a/src/Gargantext/Components/Forest/Tree/Node.purs b/src/Gargantext/Components/Forest/Tree/Node.purs
index 95216394998bcc23dc3be2cc7e41f893d1667578..31bf2c6b13e476a948cf71bd071b44486d59f038 100644
--- a/src/Gargantext/Components/Forest/Tree/Node.purs
+++ b/src/Gargantext/Components/Forest/Tree/Node.purs
@@ -45,17 +45,18 @@ here = R2.here "Gargantext.Components.Forest.Tree.Node"
 
 -- Main Node
 type NodeMainSpanProps =
-  ( folderOpen    :: T.Box Boolean
-  , frontends     :: Frontends
-  , id            :: ID
-  , isLeaf        :: IsLeaf
-  , name          :: Name
-  , nodeType      :: GT.NodeType
-  , reload        :: T.Box T2.Reload
-  , reloadRoot    :: T.Box T2.Reload
-  , route         :: T.Box Routes.AppRoute
-  , setPopoverRef :: R.Ref (Maybe (Boolean -> Effect Unit))
-  , tasks         :: T.Box GAT.Storage
+  ( folderOpen     :: T.Box Boolean
+  , frontends      :: Frontends
+  , id             :: ID
+  , isLeaf         :: IsLeaf
+  , name           :: Name
+  , nodeType       :: GT.NodeType
+  , reload         :: T2.ReloadS
+  , reloadMainPage :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS
+  , route          :: T.Box Routes.AppRoute
+  , setPopoverRef  :: R.Ref (Maybe (Boolean -> Effect Unit))
+  , tasks          :: T.Box GAT.Storage
   | CommonProps
   )
 
@@ -84,7 +85,7 @@ nodeMainSpanCpt = here.component "nodeMainSpan" cpt
               , isLeaf
               , name
               , nodeType
-              , reload
+              , reloadMainPage
               , reloadRoot
               , route
               , session
@@ -153,7 +154,7 @@ nodeMainSpanCpt = here.component "nodeMainSpan" cpt
               T2.reload reloadRoot
             else if GAT.asyncTaskTTriggersTreeReload t then do
               here.log2 "reloading tree for task" t
-              T2.reload reload
+              T2.reload reloadMainPage
             else do
               here.log2 "task doesn't trigger a reload" t
               pure unit
diff --git a/src/Gargantext/Components/GraphExplorer/Sidebar.purs b/src/Gargantext/Components/GraphExplorer/Sidebar.purs
index 75ec5eeba90587d420ee9f524ccf9a910a5ddaba..542e2cb6894dbfef54901ce1ac811e5156094cba 100644
--- a/src/Gargantext/Components/GraphExplorer/Sidebar.purs
+++ b/src/Gargantext/Components/GraphExplorer/Sidebar.purs
@@ -43,7 +43,7 @@ here = R2.here "Gargantext.Components.GraphExplorer.Sidebar"
 type Common = (
     graphId         :: NodeID
   , metaData        :: GET.MetaData
-  , reloadForest    :: T.Box T2.Reload
+  , reloadForest    :: T2.ReloadS
   , removedNodeIds  :: T.Box SigmaxT.NodeIds
   , selectedNodeIds :: T.Box SigmaxT.NodeIds
   , session         :: Session
@@ -313,7 +313,7 @@ type DeleteNodes =
   ( graphId      :: NodeID
   , metaData     :: GET.MetaData
   , nodes        :: Array (Record SigmaxT.Node)
-  , reloadForest :: T.Box T2.Reload
+  , reloadForest :: T2.ReloadS
   , session      :: Session
   , termList     :: TermList
   )
diff --git a/src/Gargantext/Components/NgramsTable.purs b/src/Gargantext/Components/NgramsTable.purs
index a5b03f59f2bde9e22cfd383540cb4358730d7d11..7b8c9d6b8c90bb8fdbe3d3728984e465feeb50af 100644
--- a/src/Gargantext/Components/NgramsTable.purs
+++ b/src/Gargantext/Components/NgramsTable.purs
@@ -259,8 +259,8 @@ tableContainerCpt { dispatch
 
 type CommonProps = (
     afterSync         :: Unit -> Aff Unit
-  , reloadForest      :: T.Box T2.Reload
-  , reloadRoot        :: T.Box T2.Reload
+  , reloadForest      :: T2.ReloadS
+  , reloadRoot        :: T2.ReloadS
   , tabNgramType      :: CTabNgramType
   , tasks             :: T.Box GAT.Storage
   , withAutoUpdate    :: Boolean
diff --git a/src/Gargantext/Components/Nodes/Annuaire/Tabs.purs b/src/Gargantext/Components/Nodes/Annuaire/Tabs.purs
index e4792c74bbec8324c1b12ad60d05b49f4a8b656a..47b7f6a7c99a059bfddc9e036e6684d13f40cfcf 100644
--- a/src/Gargantext/Components/Nodes/Annuaire/Tabs.purs
+++ b/src/Gargantext/Components/Nodes/Annuaire/Tabs.purs
@@ -56,8 +56,8 @@ type TabsProps =
   , contactData    :: ContactData
   , frontends      :: Frontends
   , nodeId         :: Int
-  , reloadForest   :: T.Box T2.Reload
-  , reloadRoot     :: T.Box T2.Reload
+  , reloadForest   :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS
   , session        :: Session
   , sidePanel      :: T.Box (Maybe (Record TextsT.SidePanel))
   , sidePanelState :: T.Box SidePanelState
@@ -133,8 +133,8 @@ ngramsViewCpt = here.component "ngramsView" cpt where
 type NTCommon =
   ( cacheState     :: T.Box LTypes.CacheState
   , defaultListId  :: Int
-  , reloadForest   :: T.Box T2.Reload
-  , reloadRoot     :: T.Box T2.Reload
+  , reloadForest   :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS
   , session        :: Session
   , tasks          :: T.Box GAT.Storage
   )
diff --git a/src/Gargantext/Components/Nodes/Annuaire/User.purs b/src/Gargantext/Components/Nodes/Annuaire/User.purs
index 283cbc5efd65d617ce98ad9446c4ab7402ccccf2..4c96182fc50b53208a807bbf71b5bd23c01d99ea 100644
--- a/src/Gargantext/Components/Nodes/Annuaire/User.purs
+++ b/src/Gargantext/Components/Nodes/Annuaire/User.purs
@@ -154,8 +154,8 @@ listElement = H.li { className: "list-group-item justify-content-between" }
 type LayoutNoSessionProps =
   ( frontends      :: Frontends
   , nodeId         :: Int
-  , reloadForest   :: T.Box T2.Reload
-  , reloadRoot     :: T.Box T2.Reload
+  , reloadForest   :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS
   , sidePanel      :: T.Box (Maybe (Record TT.SidePanel))
   , sidePanelState :: T.Box SidePanelState
   , tasks          :: T.Box GAT.Storage
diff --git a/src/Gargantext/Components/Nodes/Annuaire/User/Contact.purs b/src/Gargantext/Components/Nodes/Annuaire/User/Contact.purs
index c6cc516befd4b6f0aa79bfb641af093fb40e9b25..c1d344f1361cbb4d5ef11709cdcf5a65abdbc084 100644
--- a/src/Gargantext/Components/Nodes/Annuaire/User/Contact.purs
+++ b/src/Gargantext/Components/Nodes/Annuaire/User/Contact.purs
@@ -148,8 +148,8 @@ type BasicProps =
   )
 
 type ReloadProps =
-  ( reloadForest :: T.Box T2.Reload
-  , reloadRoot   :: T.Box T2.Reload
+  ( reloadForest :: T2.ReloadS
+  , reloadRoot   :: T2.ReloadS
   | BasicProps
   )
 
@@ -228,7 +228,7 @@ contactLayoutWithKeyCpt = here.component "contactLayoutWithKey" cpt where
                    , reloadRoot
                    , tasks } ]
       where
-        onUpdateHyperdata :: T.Box T2.Reload -> HyperdataContact -> Effect Unit
+        onUpdateHyperdata :: T2.ReloadS -> HyperdataContact -> Effect Unit
         onUpdateHyperdata reload hd =
           launchAff_ $
             saveContactHyperdata session nodeId hd *> liftEffect (T2.reload reload)
diff --git a/src/Gargantext/Components/Nodes/Annuaire/User/Contacts/Tabs.purs b/src/Gargantext/Components/Nodes/Annuaire/User/Contacts/Tabs.purs
index ece79b1b9ae9d5ba7268ca7e171869f8a1c186f9..b4be1f447775c0a80fceac347eaf44f1a652e6dc 100644
--- a/src/Gargantext/Components/Nodes/Annuaire/User/Contacts/Tabs.purs
+++ b/src/Gargantext/Components/Nodes/Annuaire/User/Contacts/Tabs.purs
@@ -53,8 +53,8 @@ type TabsProps = (
   , contactData    :: ContactData'
   , frontends      :: Frontends
   , nodeId         :: Int
-  , reloadForest   :: T.Box T2.Reload
-  , reloadRoot     :: T.Box T2.Reload
+  , reloadForest   :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS
   , session        :: Session
   , sidePanel      :: T.Box (Maybe (Record TTypes.SidePanel))
   , sidePanelState :: T.Box SidePanelState
@@ -134,8 +134,8 @@ type NgramsViewTabsProps = (
   , defaultListId  :: Int
   , mode           :: Mode
   , nodeId         :: Int
-  , reloadForest   :: T.Box T2.Reload
-  , reloadRoot     :: T.Box T2.Reload
+  , reloadForest   :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS
   , session        :: Session
   , tasks          :: T.Box GAT.Storage
   )
diff --git a/src/Gargantext/Components/Nodes/Lists.purs b/src/Gargantext/Components/Nodes/Lists.purs
index 5e2a54865e6527ebb02d51422713b7e1f482fe2b..e4ae9d5abce53052a292ee543a4fd9bb9646b213 100644
--- a/src/Gargantext/Components/Nodes/Lists.purs
+++ b/src/Gargantext/Components/Nodes/Lists.purs
@@ -40,8 +40,8 @@ listsWithSessionContextCpt = here.component "listsWithSessionContext" cpt where
 
 type CommonPropsNoSession =
   ( nodeId         :: Int
-  , reloadForest   :: T.Box T2.Reload
-  , reloadRoot     :: T.Box T2.Reload
+  , reloadForest   :: T2.ReloadS
+  , reloadRoot     :: T2.ReloadS
   , sessionUpdate  :: Session -> Effect Unit
   , sidePanel      :: T.Box (Maybe (Record SidePanel))
   , sidePanelState :: T.Box GT.SidePanelState
diff --git a/src/Gargantext/Components/Nodes/Lists/Tabs.purs b/src/Gargantext/Components/Nodes/Lists/Tabs.purs
index 8dc53f889b6c14224f9961ac7f3b3848e5b04dc8..4e49919ab051bbcb9bc48840f3948b2a437b6c62 100644
--- a/src/Gargantext/Components/Nodes/Lists/Tabs.purs
+++ b/src/Gargantext/Components/Nodes/Lists/Tabs.purs
@@ -37,8 +37,8 @@ type Props = (
     cacheState        :: T.Box CacheState
   , corpusData        :: CorpusData
   , corpusId          :: Int
-  , reloadForest      :: T.Box T2.Reload
-  , reloadRoot        :: T.Box T2.Reload
+  , reloadForest      :: T2.ReloadS
+  , reloadRoot        :: T2.ReloadS
   , session           :: Session
   , tasks             :: T.Box GAT.Storage
   )
diff --git a/src/Gargantext/Components/Router.purs b/src/Gargantext/Components/Router.purs
index acdcbbdec8a4a989fe645327119d994f3822a009..6583dfb59376d4f40cf595388619bdfee95ce97c 100644
--- a/src/Gargantext/Components/Router.purs
+++ b/src/Gargantext/Components/Router.purs
@@ -148,6 +148,7 @@ forestCpt = here.component "forest" cpt where
                      , forestOpen
                      , handed
                      , reloadForest
+                     , reloadMainPage
                      , reloadRoot
                      , route
                      , sessions
@@ -162,6 +163,7 @@ forestCpt = here.component "forest" cpt where
                                    , frontends: defaultFrontends
                                    , handed
                                    , reloadForest
+                                   , reloadMainPage
                                    , reloadRoot
                                    , route
                                    , sessions
diff --git a/src/Gargantext/Types.purs b/src/Gargantext/Types.purs
index cb46e34db764a907945488891cf4eb96dd500a24..8bed807fc457b471164dc4cb966948ede6a3a716 100644
--- a/src/Gargantext/Types.purs
+++ b/src/Gargantext/Types.purs
@@ -644,14 +644,6 @@ asyncTaskTypePath UpdateNgramsCharts = "ngrams/async/charts/update/"
 asyncTaskTypePath UpdateNode         = "update/"
 asyncTaskTypePath UploadFile         = "async/file/add/"
 
-asyncTaskTriggersAppReload :: AsyncTaskType -> Boolean
-asyncTaskTriggersAppReload _ = true
-
-asyncTaskTriggersTreeReload :: AsyncTaskType -> Boolean
-asyncTaskTriggersTreeReload Form       = true
-asyncTaskTriggersTreeReload UploadFile = true
-asyncTaskTriggersTreeReload _          = false
-
 
 type AsyncTaskID = String