<!-- Thanks for creating this pull request, where possible a PR should be small and limited to one type. See below for available types, and note that you may open multiple PRs if required. -->
<!--    - [FEATURE]: PR which implements a new or changed feature. -->
<!--    - [BUG]: PR which fixes a reported or observed bug. -->
<!--    - [PERFORMANCE]: PR which fixes a performance issue. -->
<!--    - [SECURITY]: PR which fixes a security vulnerability. -->
<!--    - [DEPENDENCY]: PR which updates a dependency, and changes code as required depending on the new version of the dependency. -->
<!--    - [REFACTOR]: PR which refactors a part of the codebase (predominantly changes which do not change how code functions). -->
<!--    - [REWRITE]: PR which rewrites a part of the codebase (significant changes to how the code functions). -->
<!--    - [REMOVE]: PR which removes a section of the codebase, and changes code as required to facilitate the removal. -->
<!--    - [DOCS]: PR which only updates documentation. -->
<!--    - [TEST]: PR which only updates the test suite. -->
<!--    - [OTHER]: Any other PR. -->
## Details

<!-- Please fill out the following lists and checklists detailing the type and "completeness" of your PR. -->
Please see the following list and subsequent sections for general details about this PR such as type of code change, and how complete the PR is with respect to how close it is to being ready to merge considering compliance with repository code standards etc.

- Closes: # <!-- Insert issue number here (leave blank if not applicable) -->
- Type: <!-- Insert PR type here (see above for PR types) -->

### Tests

- [ ] This PR requires changes or additions to the test suite
- [ ] This PR implements any required additional or changed tests (check if no new tests required)
- [ ] This PR passes all tests

### Documentation

- [ ] This PR requires changes or additions to the repository documentation
- [ ] This PR adds any required additional or changed documentation (check if no new documentation required)

### Housekeeping

- [ ] This PR adheres to the general code style of the repository (please see `CONTRIBUTING.md`)
- [ ] This PR does *not* cause any ESLint errors in the changes it makes
- [ ] This PR does *not* commit any local development environment configurations etc.
- [ ] The changes made by this PR are on a branch which is *not* yet merged into the `main` branch
- [ ] The template below is completed for this PR
    - [ ] Remove sample texts underneath each heading
    - [ ] Complete each section with requested details in comments

## Description

<!-- Add a brief description of the PR on the lines below. Where appropriate, include code-blocks etc. showing new functionality. -->
This PR implements...

## Motivation

<!-- Particularly if this does not resolve an existing issue, describe why this change is required or beneficial (delete if not required). -->
This change is required to...

## Breaking Changes

<!-- List *any* breaking changes using a markdown list. If there are no breaking changes, specify explicitly "No breaking changes.". -->
- First breaking change

## Additional Information

<!-- Add any additional information relevant to the PR (e.g. screenshots, or comparisons between new and old behavior). -->
This PR improves performance over the old implementation...