diff --git a/app/components/breadcrumb/index.js b/app/components/breadcrumb/index.js
index 8568edbdac1b963f688954568629dd96f889d3c1..63e73b2de0af26a01b2b1a3b93e37ceae0fdc7b0 100644
--- a/app/components/breadcrumb/index.js
+++ b/app/components/breadcrumb/index.js
@@ -10,6 +10,7 @@ export default class BreadcrumbComponent extends Component {
     current = this.args.node;
 
     while (current && current.get('id')) {
+      console.log(`pushing current node id = ${current.get('id')}`);
       _nodes.push(current);
       current = current.get('parent');
     }
@@ -18,6 +19,7 @@ export default class BreadcrumbComponent extends Component {
   }
 
   get query() {
+
     if (this.args.extranode) {
       return {
         extranode_id: this.args.extranode.id
diff --git a/app/components/dual_link_to/index.js b/app/components/dual_link_to/index.js
index 1843cc7026cf22d0b58bb59d7ec6709e0cd05ebf..62579022ba7ad125a245d41fff6f0424668378ce 100644
--- a/app/components/dual_link_to/index.js
+++ b/app/components/dual_link_to/index.js
@@ -88,8 +88,13 @@ export default class DualLinkToComponent extends Component {
     let ret;
 
     ret = this.args.title || this.args.node.get('title');
-    if (ret.length > 16) {
-      return `${ret.substring(0, 16)}...`;
+
+    if (!ret) {
+      return '';
+    }
+
+    if (ret.length > 24) {
+      return `${ret.substring(0, 24)}...`;
     }
 
     return ret;
diff --git a/app/routes/authenticated/document.js b/app/routes/authenticated/document.js
index 27127574e992334cb42b04e1bdc23a40c32e1b05..ef7f51be4beee6d30f8e3a23db5fe95a0d29d819 100644
--- a/app/routes/authenticated/document.js
+++ b/app/routes/authenticated/document.js
@@ -1,6 +1,8 @@
 import Route from '@ember/routing/route';
 import { inject as service } from '@ember/service';
 
+import { getPanelInfo } from './utils';
+
 
 export default class DocumentRoute extends Route {
   @service store;
@@ -17,7 +19,6 @@ export default class DocumentRoute extends Route {
   async model(params) {
     let doc_adapter,
       page_adapter,
-      node_adapter,
       extranode,
       document_version,
       document_version2,
@@ -26,7 +27,6 @@ export default class DocumentRoute extends Route {
       pages_with_url,
       pages_with_url2;
 
-    node_adapter = this.store.adapterFor('node');
     page_adapter = this.store.adapterFor('page');
     doc_adapter = this.store.adapterFor('document');
 
@@ -50,7 +50,11 @@ export default class DocumentRoute extends Route {
 
     if (params.extranode_id) {
 
-      extranode = await node_adapter.findNode(params.extranode_id)
+      extranode = await getPanelInfo({
+        store: this.store,
+        node_id: params.extranode_id,
+        page: 1
+      });
 
       return {
         'document_version': document_version,
diff --git a/app/routes/authenticated/nodes.js b/app/routes/authenticated/nodes.js
index 778355055e1262da197761437cda8a3a37be84e9..c290e499daf11134a3fa24d5ab329f1ab92eb4f0 100644
--- a/app/routes/authenticated/nodes.js
+++ b/app/routes/authenticated/nodes.js
@@ -2,6 +2,8 @@ import Route from '@ember/routing/route';
 import { inject as service } from '@ember/service';
 import RSVP from 'rsvp';
 
+import { getPanelInfo } from './utils';
+
 
 export default class FolderRoute extends Route {
   @service store;
@@ -24,10 +26,9 @@ export default class FolderRoute extends Route {
       doc_adapter,
       page_adapter,
       pages,
-      current_node,
       pages_with_url,
       document_version,
-      home_folder;
+      context = {};
 
     adapter = this.store.adapterFor('node');
     page_adapter = this.store.adapterFor('page');
@@ -35,6 +36,13 @@ export default class FolderRoute extends Route {
 
     await this.currentUser.loadCurrentUser();
 
+    context = await getPanelInfo({
+      store: this.store,
+      node_id: params.node_id,
+      page: params.page
+    });
+
+
     if (params.extradoc_id) {
       document_version  = await doc_adapter.getDocumentVersion(params.extradoc_id);
       pages = await document_version.pages;
@@ -49,27 +57,16 @@ export default class FolderRoute extends Route {
     }
 
     if (params.extranode_id) {
-      return RSVP.hash({
-        node: adapter.findNode(params.node_id),
-        extranode: adapter.findNode(params.extranode_id),
-        home_folder: this.currentUser.user.home_folder
+      context['extranode'] = await getPanelInfo({
+        store: this.store,
+        node_id: params.extranode_id,
+        page: 1
       });
     }
 
-    const {children, pagination} = await adapter.getChildren({
-      node_id: params.node_id,
-      page: params.page
-    });
-    home_folder = await this.currentUser.user.getHomeFolder();
-    current_node = await adapter.getFolder(params.node_id);
-
-    return {
-      current_node,
-      home_folder,
-      children,
-      pagination
-    };
+    context['home_folder'] = await this.currentUser.user.getHomeFolder();
 
+    return context;
   }
 
   setupController(controller, model) {
@@ -94,4 +91,5 @@ export default class FolderRoute extends Route {
     _controller.set('children', model.children);
     _controller.set('pagination', model.pagination);
   }
+
 }
diff --git a/app/routes/authenticated/utils.js b/app/routes/authenticated/utils.js
new file mode 100644
index 0000000000000000000000000000000000000000..434ca7985ee4e28d2ad52581ca4042560e33820b
--- /dev/null
+++ b/app/routes/authenticated/utils.js
@@ -0,0 +1,23 @@
+
+
+export async function getPanelInfo({store, node_id, page}) {
+  /*
+    Returns current_node model its
+    children nodes models and associated pagination info.
+
+    `page` is integer number of the page
+    `store` is "@service store" thingy
+  */
+  let node;
+  const adapter = store.adapterFor('node');
+  const {children, pagination} = await adapter.getChildren({node_id, page});
+
+
+  node = await adapter.getFolder(node_id);
+
+  return {
+    current_node: node,
+    children: children,
+    pagination: pagination
+  };
+}
diff --git a/app/templates/authenticated/nodes.hbs b/app/templates/authenticated/nodes.hbs
index 4145fb9a85673db09500295c772b029d68c21027..4f949df2f7e85fdb3c8e49e18d0d2f6207ea1647 100644
--- a/app/templates/authenticated/nodes.hbs
+++ b/app/templates/authenticated/nodes.hbs
@@ -1,7 +1,7 @@
 <div class="panels d-flex row">
   <Commander
     @node={{this.mainnode}}
-    @extranode={{this.extranode}}
+    @extranode={{this.extranode.current_node}}
     @children={{this.children}}
     @pagination={{this.pagination}}
     @onPanelToggle={{this.onPanelToggle}}
@@ -19,8 +19,10 @@
         @hint="right" />
     {{else}}
       <Commander
-        @node={{this.extranode}}
+        @node={{this.extranode.current_node}}
         @extranode={{this.mainnode}}
+        @children={{this.extranode.children}}
+        @pagination={{this.extranode.pagination}}
         @onPanelToggle={{this.onPanelToggle}}
         @dualPanelMode={{this.dualpanel_mode}}
         @hint="right" />
diff --git a/app/templates/authenticated/viewer.hbs b/app/templates/authenticated/viewer.hbs
index 0c2c60d0fc0874f6459002f8b7bfbbb27bd3ee08..fcbafad33dd78d8f94cfbc4960a8b3131f123f63 100644
--- a/app/templates/authenticated/viewer.hbs
+++ b/app/templates/authenticated/viewer.hbs
@@ -2,7 +2,7 @@
   <Viewer
     @document_version={{@model.document_version}}
     @pages={{@model.pages}}
-    @extranode={{this.extranode}}
+    @extranode={{this.extranode.current_node}}
     @onPanelToggle={{this.onPanelToggle}}
     @dualPanelMode={{this.dualpanel_mode}}
     @hint="left" />
@@ -18,7 +18,9 @@
         @hint="right" />
     {{else}}
       <Commander
-        @node={{this.extranode}}
+        @node={{this.extranode.current_node}}
+        @children={{this.extranode.children}}
+        @pagination={{this.extranode.pagination}}
         @extradoc={{@model}}
         @onPanelToggle={{this.onPanelToggle}}
         @dualPanelMode={{this.dualpanel_mode}}