diff --git a/module/finc/config/module.config.php b/module/finc/config/module.config.php
index 41679f8983dd6be183047f40c61dd014e8f98055..dbc983ba4a3faca61c725d29e109f9e95ebea11f 100644
--- a/module/finc/config/module.config.php
+++ b/module/finc/config/module.config.php
@@ -118,18 +118,24 @@ $config = [
                 ],
             ],
             'hierarchy_treedataformatter' => [
-                'invokables' => [
+                'aliases' => [
                     'json' => 'finc\Hierarchy\TreeDataFormatter\NoCollections',
                 ],
             ],
             'hierarchy_treedatasource' => [
                 'factories' => [
-                    'solr' => 'finc\Hierarchy\TreeDataSource\Factory::getSolr',
+                    'finc\Hierarchy\TreeDataSource\Solr' => 'VuFind\Hierarchy\TreeDataSource\SolrFactory',
+                ],
+                'aliases' => [
+                    'solr' => 'finc\Hierarchy\TreeDataSource\Solr',
                 ],
             ],
             'hierarchy_treerenderer' => [
                 'factories' => [
-                    'jstree' => 'finc\Hierarchy\TreeRenderer\Factory::getJSTree'
+                    'finc\Hierarchy\TreeRenderer\JSTree' => 'VuFind\Hierarchy\TreeRenderer\JSTreeFactory'
+                ],
+                'aliases' => [
+                    'jstree' => 'finc\Hierarchy\TreeRenderer\JSTree'
                 ],
             ],
         ],
diff --git a/module/finc/src/finc/Hierarchy/TreeDataSource/Factory.php b/module/finc/src/finc/Hierarchy/TreeDataSource/Factory.php
deleted file mode 100644
index 36cec38b5913a2b8361e03cef1491615bfc48c2a..0000000000000000000000000000000000000000
--- a/module/finc/src/finc/Hierarchy/TreeDataSource/Factory.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/**
- * Hierarchy Data Source Factory Class
- *
- * PHP version 5
- *
- * Copyright (C) Villanova University 2010.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category VuFind
- * @package  HierarchyTree_DataSource
- * @author   Demian Katz <demian.katz@villanova.edu>
- * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
- * @link     https://vufind.org/wiki/development:plugins:hierarchy_components Wiki
- */
-namespace finc\Hierarchy\TreeDataSource;
-
-use Zend\ServiceManager\ServiceManager;
-
-/**
- * Hierarchy Data Source Factory Class
- *
- * This is identical to the VuFind equivalent ensuring the correct namespace
- * to load \de_15\Hierarchy\TreeDataSource\Solr
- *
- * @category VuFind
- * @package  HierarchyTree_DataSource
- * @author   Dorian Merz <merz@ub.uni-leipzig.de>
- * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
- * @link     https://vufind.org/wiki/development:plugins:hierarchy_components Wiki
- *
- * @codeCoverageIgnore
- */
-class Factory
-{
-    /**
-     * Factory for Solr driver.
-     *
-     * @param ServiceManager $sm Service manager.
-     *
-     * @return Solr
-     */
-    public static function getSolr(ServiceManager $sm)
-    {
-        $cacheDir = $sm->getServiceLocator()->get('VuFind\CacheManager')
-            ->getCacheDir(false);
-        $hierarchyFilters = $sm->getServiceLocator()->get('VuFind\Config')
-            ->get('HierarchyDefault');
-        $filters = isset($hierarchyFilters->HierarchyTree->filterQueries)
-          ? $hierarchyFilters->HierarchyTree->filterQueries->toArray()
-          : [];
-        $solr = $sm->getServiceLocator()->get('VuFind\Search\BackendManager')
-            ->get('Solr')->getConnector();
-        $formatterManager = $sm->getServiceLocator()
-            ->get('VuFind\HierarchyTreeDataFormatterPluginManager');
-        return new Solr(
-            $solr,
-            $formatterManager,
-            rtrim($cacheDir, '/') . '/hierarchy',
-            $filters
-        );
-    }
-}
diff --git a/module/finc/src/finc/Hierarchy/TreeDataSource/Solr.php b/module/finc/src/finc/Hierarchy/TreeDataSource/Solr.php
index 2b193b20d4e1e42ad847a69abd60fe53d8a12111..025946cc7944058321172ed0782ccb90ee5cdbee 100644
--- a/module/finc/src/finc/Hierarchy/TreeDataSource/Solr.php
+++ b/module/finc/src/finc/Hierarchy/TreeDataSource/Solr.php
@@ -66,21 +66,43 @@ class Solr extends VuFindBase
         if ($this->isTopElementQuery($q) || (isset($this->recordDriver) && $this->recordDriver->isCollection())) {
             $filters[] = "format:DigitalCollection";
         }
-        $params = new ParamBag(
-            [
-                'q'  => [$q],
-                'fq' => $filters,
-                'hl' => ['false'],
-                'fl' => ['title,id,hierarchy_parent_id,hierarchy_top_id,'
-                    . 'is_hierarchy_id,hierarchy_sequence,title_in_hierarchy,recordtype'],
-                'wt' => ['json'],
-                'json.nl' => ['arrarr'],
-                'rows' => [$rows], // Integer max
-                'start' => [0]
-            ]
-        );
-        $response = $this->solrConnector->search($params);
-        return json_decode($response);
+        $prevCursorMark = '';
+        $cursorMark = '*';
+        $records = [];
+        while ($cursorMark !== $prevCursorMark) {
+            $params = new ParamBag(
+                [
+                    'q'  => [$q],
+                    'fq' => $filters,
+                    'hl' => ['false'],
+                    'spellcheck' => ['false'],
+                    'fl' => ['title,id,hierarchy_parent_id,hierarchy_top_id,'
+                        . 'is_hierarchy_id,hierarchy_sequence,title_in_hierarchy','recordtype'],
+                    'wt' => ['json'],
+                    'json.nl' => ['arrarr'],
+                    'rows' => [min([$this->batchSize, $rows])],
+                    // Start is always 0 when using cursorMark
+                    'start' => [0],
+                    // Sort is required
+                    'sort' => ['id asc'],
+                    // Override any default timeAllowed since it cannot be used with
+                    // cursorMark
+                    'timeAllowed' => -1,
+                    'cursorMark' => $cursorMark
+                ]
+            );
+            $results = json_decode($this->solrConnector->search($params));
+            if (empty($results->response->docs)) {
+                break;
+            }
+            $records = array_merge($records, $results->response->docs);
+            if (count($records) >= $rows) {
+                break;
+            }
+            $prevCursorMark = $cursorMark;
+            $cursorMark = $results->nextCursorMark;
+        }
+        return $records;
     }
 
     /**
diff --git a/module/finc/src/finc/Hierarchy/TreeRenderer/Factory.php b/module/finc/src/finc/Hierarchy/TreeRenderer/Factory.php
deleted file mode 100644
index 2335209593ac08a9da5958dbc6b74dd175ce7438..0000000000000000000000000000000000000000
--- a/module/finc/src/finc/Hierarchy/TreeRenderer/Factory.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/**
- * Hierarchy Renderer Factory Class
- *
- * PHP version 5
- *
- * Copyright (C) Villanova University 2010.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * @category VuFind
- * @package  HierarchyTree_Renderer
- * @author   Demian Katz <demian.katz@villanova.edu>
- * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
- * @link     https://vufind.org/wiki/development:plugins:hierarchy_components Wiki
- */
-namespace finc\Hierarchy\TreeRenderer;
-
-use Zend\ServiceManager\ServiceManager;
-
-/**
- * Hierarchy Renderer Factory Class
- *
- * This is a factory class to build objects for rendering hierarchies.
- *
- * @category VuFind
- * @package  HierarchyTree_DataSource
- * @author   Demian Katz <demian.katz@villanova.edu>
- * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
- * @link     https://vufind.org/wiki/development:plugins:hierarchy_components Wiki
- *
- * @codeCoverageIgnore
- */
-class Factory
-{
-    /**
-     * Factory for JSTree renderer.
-     *
-     * @param ServiceManager $sm Service manager.
-     *
-     * @return JSTree
-     */
-    public static function getJSTree(ServiceManager $sm)
-    {
-        return new JSTree(
-            $sm->getServiceLocator()->get('ControllerPluginManager')->get('Url')
-        );
-    }
-}
diff --git a/module/finc/src/finc/Hierarchy/TreeRenderer/JSTree.php b/module/finc/src/finc/Hierarchy/TreeRenderer/JSTree.php
index 36e45a39a81943456cf13f7aa03b8991f9c8788e..36bd4efcfe6d2516374c3ce00b2dbaecf3dcf0d9 100644
--- a/module/finc/src/finc/Hierarchy/TreeRenderer/JSTree.php
+++ b/module/finc/src/finc/Hierarchy/TreeRenderer/JSTree.php
@@ -40,16 +40,6 @@ namespace finc\Hierarchy\TreeRenderer;
  */
 class JSTree extends \VuFind\Hierarchy\TreeRenderer\JSTree
 {
-    /**
-     * Constructor
-     *
-     * @param \Zend\Mvc\Controller\Plugin\Url $router Router plugin for urls
-     */
-    public function __construct(\Zend\Mvc\Controller\Plugin\Url $router)
-    {
-        parent::__construct($router);
-    }
-
     /**
      * Use the router to build the appropriate URL based on context
      *
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml
index 122de489bb7bf3cfc3f78a65a069969c14450dfd..77e372de31d42aacd448a7f0ab80d9d9e360cd77 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml
@@ -1,19 +1,16 @@
-<?php
+<?
 $normalizedValue = preg_replace('/[^a-z0-9]/', '', strtolower($this->value));
 
 // Convert normalizedValue to styles
 // finc: same list of states for icons like in de_15 #13704 - VE
 switch ($normalizedValue) {
-  case 'marcfincpda':
-    echo 'fa-home passive';
-    break;
-  case 'object':
-    echo 'fa-home object';
-    break;
-  case 'localholdings':
+  case 'local':
     echo 'fa-home';
     break;
-  case 'electronicresources':
+  case 'freeonline':
+  case 'onlinefree':
+  case 'online':
+  case 'free':
     echo 'fa-globe';
     break;
   default:
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml
index dd76b4d0b0cbc947e146f4253368536161ca525e..5ce60b63ebc93954de56d1abf763f20fb7a47fd2 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml
@@ -16,7 +16,10 @@ if ($this->driver->getRecordType() == "marcfincpda") {
 } elseif ($this->driver->getRecordType() == "lido") {
   $iconClass = $this->record($this->driver)->getRecordIconClass("object");
 } else {
-  $iconClass = $this->record($this->driver)->getRecordIconClass($this->driver->getAccessFacet());
+  /* finc: solr field facet_avail instead of access_facet (field deprecated) #15375 - GG */
+  $facetAvail = $this->driver->getFacetAvail();
+  $facetAvail = implode('', $facetAvail);
+  $iconClass = $this->record($this->driver)->getRecordIconClass($facetAvail);
 }
 ?>
 <span class="access-icon hidden-print">