Repository: aeon-toolkit/aeon
Pull request #817 (2023-10-12 12:38:58)

[MNT] Automated CONTRIBUTORS.md update
Automated update to CONTRIBUTORS.md caused by an update to the .all-contributorsrc file.

sweep-ai[bot]: ## Apply [Sweep Rules](https://docs.sweep.dev/usage/config#rules) to your PR?
- [ ] **Apply:**  There should not be large chunks of code that are just commented out. Docstrings and explanations in code are okay though.
- [ ] **Apply:**  Update the relevant API page in 'docs/api_reference/' when new public functions and classes are added and not included in the API documentation. Only add functions and classes which are not already in the relevant API documentation and avoid duplicate entries.
- [ ] **Apply:**  Leftover TODOs in the code should be handled.
- [ ] **Apply:**  All new business logic should have corresponding unit tests in the tests/ directory.
- [ ] **Apply:**  Any clearly inefficient or repeated code should be optimized or refactored.

Patch:
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index c3b40003..1df79afe 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -1,7 +1,7 @@
 # Contributors
 
 <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
-[![All Contributors](https://img.shields.io/badge/all_contributors-211-orange.svg)](#contributors)
+[![All Contributors](https://img.shields.io/badge/all_contributors-212-orange.svg)](#contributors)
 <!-- ALL-CONTRIBUTORS-BADGE:END -->
 
 This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
@@ -144,6 +144,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/Lovkush-A"><img src="https://avatars.githubusercontent.com/u/25344832?v=4?s=80" width="80px;" alt="Lovkush"/><br /><sub><b>Lovkush</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=Lovkush-A" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=Lovkush-A" title="Tests">⚠️</a> <a href="#ideas-Lovkush-A" title="Ideas, Planning, & Feedback">🤔</a> <a href="#mentoring-Lovkush-A" title="Mentoring">🧑‍🏫</a> <a href="#projectManagement-Lovkush-A" title="Project Management">📆</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/zy18811"><img src="https://avatars.githubusercontent.com/u/74973887?v=4?s=80" width="80px;" alt="Luca Bennett"/><br /><sub><b>Luca Bennett</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=zy18811" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=zy18811" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=zy18811" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/lbventura"><img src="https://avatars.githubusercontent.com/u/68004282?s=96&v=4?s=80" width="80px;" alt="Luis Ventura"/><br /><sub><b>Luis Ventura</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=lbventura" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/luiszugasti"><img src="https://avatars.githubusercontent.com/u/11198457?s=460&u=0645b72683e491824aca16db9702f1d3eb990389&v=4?s=80" width="80px;" alt="Luis Zugasti"/><br /><sub><b>Luis Zugasti</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=luiszugasti" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/lmmentel"><img src="https://avatars.githubusercontent.com/u/8989838?v=4?s=80" width="80px;" alt="Lukasz Mentel"/><br /><sub><b>Lukasz Mentel</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=lmmentel" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=lmmentel" title="Documentation">📖</a> <a href="#infra-lmmentel" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=lmmentel" title="Tests">⚠️</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Almmentel" title="Bug reports">🐛</a> <a href="#maintenance-lmmentel" title="Maintenance">🚧</a> <a href="#mentoring-lmmentel" title="Mentoring">🧑‍🏫</a></td>
@@ -151,9 +152,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/MarcoGorelli"><img src="https://avatars2.githubusercontent.com/u/33491632?v=4?s=80" width="80px;" alt="Marco Gorelli"/><br /><sub><b>Marco Gorelli</b></sub></a><br /><a href="#infra-MarcoGorelli" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/margaret-gorlin/"><img src="https://avatars.githubusercontent.com/u/23091594?v=4?s=80" width="80px;" alt="Margaret Gorlin"/><br /><sub><b>Margaret Gorlin</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=mgorlin" title="Code">💻</a> <a href="#example-mgorlin" title="Examples">💡</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=mgorlin" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/mariamjabara"><img src="https://avatars.githubusercontent.com/u/38568292?v=4?s=80" width="80px;" alt="Mariam Jabara"/><br /><sub><b>Mariam Jabara</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=mariamjabara" title="Code">💻</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://twitter.com/marielli"><img src="https://avatars2.githubusercontent.com/u/13499809?v=4?s=80" width="80px;" alt="Marielle"/><br /><sub><b>Marielle</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=marielledado" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=marielledado" title="Code">💻</a> <a href="#ideas-marielledado" title="Ideas, Planning, & Feedback">🤔</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://twitter.com/marielli"><img src="https://avatars2.githubusercontent.com/u/13499809?v=4?s=80" width="80px;" alt="Marielle"/><br /><sub><b>Marielle</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=marielledado" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=marielledado" title="Code">💻</a> <a href="#ideas-marielledado" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/mloning"><img src="https://avatars3.githubusercontent.com/u/21020482?v=4?s=80" width="80px;" alt="Markus Löning"/><br /><sub><b>Markus Löning</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=mloning" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=mloning" title="Tests">⚠️</a> <a href="#maintenance-mloning" title="Maintenance">🚧</a> <a href="#platform-mloning" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Amloning" title="Reviewed Pull Requests">👀</a> <a href="#infra-mloning" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#example-mloning" title="Examples">💡</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Amloning" title="Bug reports">🐛</a> <a href="#tutorial-mloning" title="Tutorials">✅</a> <a href="#business-mloning" title="Business development">💼</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=mloning" title="Documentation">📖</a> <a href="#design-mloning" title="Design">🎨</a> <a href="#eventOrganizing-mloning" title="Event Organizing">📋</a> <a href="#fundingFinding-mloning" title="Funding Finding">🔍</a> <a href="#ideas-mloning" title="Ideas, Planning, & Feedback">🤔</a> <a href="#projectManagement-mloning" title="Project Management">📆</a> <a href="#question-mloning" title="Answering Questions">💬</a> <a href="#talk-mloning" title="Talks">📢</a> <a href="#mentoring-mloning" title="Mentoring">🧑‍🏫</a> <a href="#video-mloning" title="Videos">📹</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/martin-walter-1a33b3114/"><img src="https://avatars0.githubusercontent.com/u/29627036?v=4?s=80" width="80px;" alt="Martin Walter"/><br /><sub><b>Martin Walter</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=aiwalter" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Aaiwalter" title="Bug reports">🐛</a> <a href="#projectManagement-aiwalter" title="Project Management">📆</a> <a href="#fundingFinding-aiwalter" title="Funding Finding">🔍</a> <a href="#mentoring-aiwalter" title="Mentoring">🧑‍🏫</a> <a href="#ideas-aiwalter" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-aiwalter" title="Design">🎨</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Aaiwalter" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=aiwalter" title="Documentation">📖</a> <a href="#talk-aiwalter" title="Talks">📢</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/martinagvilas"><img src="https://avatars2.githubusercontent.com/u/37339384?v=4?s=80" width="80px;" alt="Martina G. Vilas"/><br /><sub><b>Martina G. Vilas</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Amartinagvilas" title="Reviewed Pull Requests">👀</a> <a href="#ideas-martinagvilas" title="Ideas, Planning, & Feedback">🤔</a></td>
@@ -161,9 +162,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/solen0id"><img src="https://avatars.githubusercontent.com/u/20767606?v=4?s=80" width="80px;" alt="Max Patzelt"/><br /><sub><b>Max Patzelt</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=solen0id" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/Hephaest"><img src="https://avatars2.githubusercontent.com/u/37981444?v=4?s=80" width="80px;" alt="Miao Cai"/><br /><sub><b>Miao Cai</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3AHephaest" title="Bug reports">🐛</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=Hephaest" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="michaelfeil.eu"><img src="https://avatars.githubusercontent.com/u/63565275?v=4?s=80" width="80px;" alt="Michael Feil"/><br /><sub><b>Michael Feil</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=michaelfeil" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=michaelfeil" title="Tests">⚠️</a> <a href="#ideas-michaelfeil" title="Ideas, Planning, & Feedback">🤔</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/MichalChromcak"><img src="https://avatars1.githubusercontent.com/u/12393430?v=4?s=80" width="80px;" alt="Michal Chromcak"/><br /><sub><b>Michal Chromcak</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=MichalChromcak" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=MichalChromcak" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=MichalChromcak" title="Tests">⚠️</a> <a href="#tutorial-MichalChromcak" title="Tutorials">✅</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/MichalChromcak"><img src="https://avatars1.githubusercontent.com/u/12393430?v=4?s=80" width="80px;" alt="Michal Chromcak"/><br /><sub><b>Michal Chromcak</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=MichalChromcak" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=MichalChromcak" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=MichalChromcak" title="Tests">⚠️</a> <a href="#tutorial-MichalChromcak" title="Tutorials">✅</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/miraep8"><img src="https://avatars.githubusercontent.com/u/10511777?s=400&u=10a774fd4be767fa3b23a82a98bbfe102c17f0f3&v=4?s=80" width="80px;" alt="Mirae Parker"/><br /><sub><b>Mirae Parker</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=miraep8" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=miraep8" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://mo-saif.github.io/"><img src="https://avatars0.githubusercontent.com/u/27867617?v=4?s=80" width="80px;" alt="Mohammed Saif Kazamel"/><br /><sub><b>Mohammed Saif Kazamel</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3AMo-Saif" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://moradisten.github.io/"><img src="https://avatars.githubusercontent.com/u/29915156?v=4?s=80" width="80px;" alt="Morad :)"/><br /><sub><b>Morad :)</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=moradabaz" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=moradabaz" title="Tests">⚠️</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=moradabaz" title="Documentation">📖</a></td>
@@ -171,9 +172,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/marcio55afr"><img src="https://avatars.githubusercontent.com/u/42646282?v=4?s=80" width="80px;" alt="Márcio A. Freitas Jr"/><br /><sub><b>Márcio A. Freitas Jr</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=marcio55afr" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/niekvanderlaan"><img src="https://avatars.githubusercontent.com/u/9962825?v=4?s=80" width="80px;" alt="Niek van der Laan"/><br /><sub><b>Niek van der Laan</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=niekvanderlaan" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/ngupta23"><img src="https://avatars0.githubusercontent.com/u/33585645?v=4?s=80" width="80px;" alt="Nikhil Gupta"/><br /><sub><b>Nikhil Gupta</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=ngupta23" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Angupta23" title="Bug reports">🐛</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=ngupta23" title="Documentation">📖</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/nshahpazov/"><img src="https://avatars.githubusercontent.com/nshahpazov?s=80" width="80px;" alt="Nikola Shahpazov"/><br /><sub><b>Nikola Shahpazov</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=nshahpazov" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/nshahpazov/"><img src="https://avatars.githubusercontent.com/nshahpazov?s=80" width="80px;" alt="Nikola Shahpazov"/><br /><sub><b>Nikola Shahpazov</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=nshahpazov" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/nilesh05apr"><img src="https://avatars.githubusercontent.com/u/65773314?v=4?s=80" width="80px;" alt="Nilesh Kumar"/><br /><sub><b>Nilesh Kumar</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=nilesh05apr" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/ninfueng"><img src="https://avatars2.githubusercontent.com/u/28499769?v=4?s=80" width="80px;" alt="Ninnart Fuengfusin"/><br /><sub><b>Ninnart Fuengfusin</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=ninfueng" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/NoaBenAmi"><img src="https://avatars.githubusercontent.com/u/37590002?v=4?s=80" width="80px;" alt="Noa Ben Ami"/><br /><sub><b>Noa Ben Ami</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=NoaBenAmi" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=NoaBenAmi" title="Tests">⚠️</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=NoaBenAmi" title="Documentation">📖</a></td>
@@ -181,9 +182,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/kachayev"><img src="https://avatars.githubusercontent.com/u/485647?v=4?s=80" width="80px;" alt="Oleksii Kachaiev"/><br /><sub><b>Oleksii Kachaiev</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=kachayev" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=kachayev" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/olivermatthews"><img src="https://avatars.githubusercontent.com/u/31141490?v=4?s=80" width="80px;" alt="Oliver Matthews"/><br /><sub><b>Oliver Matthews</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=OliverMatthews" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/prockenschaub"><img src="https://avatars0.githubusercontent.com/u/15381732?v=4?s=80" width="80px;" alt="Patrick Rockenschaub"/><br /><sub><b>Patrick Rockenschaub</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=prockenschaub" title="Code">💻</a> <a href="#design-prockenschaub" title="Design">🎨</a> <a href="#ideas-prockenschaub" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=prockenschaub" title="Tests">⚠️</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="http://www2.informatik.hu-berlin.de/~schaefpa/"><img src="https://avatars0.githubusercontent.com/u/7783034?v=4?s=80" width="80px;" alt="Patrick Schäfer"/><br /><sub><b>Patrick Schäfer</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=patrickzib" title="Code">💻</a> <a href="#tutorial-patrickzib" title="Tutorials">✅</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="http://www2.informatik.hu-berlin.de/~schaefpa/"><img src="https://avatars0.githubusercontent.com/u/7783034?v=4?s=80" width="80px;" alt="Patrick Schäfer"/><br /><sub><b>Patrick Schäfer</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=patrickzib" title="Code">💻</a> <a href="#tutorial-patrickzib" title="Tutorials">✅</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://ber.gp"><img src="https://avatars1.githubusercontent.com/u/9824244?v=4?s=80" width="80px;" alt="Paul"/><br /><sub><b>Paul</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=Pangoraw" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/paulyim97/"><img src="https://avatars.githubusercontent.com/pyyim?s=80" width="80px;" alt="Paul Yim"/><br /><sub><b>Paul Yim</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=pyyim" title="Code">💻</a> <a href="#example-pyyim" title="Examples">💡</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=pyyim" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://www.imes.uni-hannover.de/de/institut/team/m-sc-karl-philipp-kortmann/"><img src="https://avatars.githubusercontent.com/u/20466981?v=4?s=80" width="80px;" alt="Philipp Kortmann"/><br /><sub><b>Philipp Kortmann</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=MrPr3ntice" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=MrPr3ntice" title="Documentation">📖</a></td>
@@ -191,9 +192,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/pul95"><img src="https://avatars.githubusercontent.com/pul95?s=80" width="80px;" alt="Pulkit Verma"/><br /><sub><b>Pulkit Verma</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=pul95" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/Quaterion"><img src="https://avatars2.githubusercontent.com/u/23200273?v=4?s=80" width="80px;" alt="Quaterion"/><br /><sub><b>Quaterion</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3AQuaterion" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/RafaAyGar"><img src="https://avatars.githubusercontent.com/u/37343008?s=400&u=bbd9c00c6045adf11cd9376e6db1d959565c27c6&v=4?s=80" width="80px;" alt="Rafael Ayllón-Gavilán"/><br /><sub><b>Rafael Ayllón-Gavilán</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=RafaAyGar" title="Code">💻</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/rakshitha123"><img src="https://avatars.githubusercontent.com/u/7654679?v=4?s=80" width="80px;" alt="Rakshitha Godahewa"/><br /><sub><b>Rakshitha Godahewa</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=rakshitha123" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=rakshitha123" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/rakshitha123"><img src="https://avatars.githubusercontent.com/u/7654679?v=4?s=80" width="80px;" alt="Rakshitha Godahewa"/><br /><sub><b>Rakshitha Godahewa</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=rakshitha123" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=rakshitha123" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/RavenRudi"><img src="https://avatars.githubusercontent.com/u/46402968?v=4?s=80" width="80px;" alt="RavenRudi"/><br /><sub><b>RavenRudi</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=RavenRudi" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/wolph"><img src="https://avatars.githubusercontent.com/u/270571?v=4?s=80" width="80px;" alt="Rick van Hattem"/><br /><sub><b>Rick van Hattem</b></sub></a><br /><a href="#infra-wolph" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/Ris-Bali"><img src="https://avatars.githubusercontent.com/u/81592570?v=4?s=80" width="80px;" alt="Rishabh Bali"/><br /><sub><b>Rishabh Bali</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=Ris-Bali" title="Code">💻</a></td>
@@ -201,9 +202,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/Riyabelle25"><img src="https://avatars.githubusercontent.com/u/55790848?v=4?s=80" width="80px;" alt="Riya Elizabeth John"/><br /><sub><b>Riya Elizabeth John</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=Riyabelle25" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=Riyabelle25" title="Tests">⚠️</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=Riyabelle25" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/ronnie-llamado"><img src="https://avatars.githubusercontent.com/ronnie-llamado?s=80" width="80px;" alt="Ronnie Llamado"/><br /><sub><b>Ronnie Llamado</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=ronnie-llamado" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/rnkuhns"><img src="https://avatars0.githubusercontent.com/u/26907244?v=4?s=80" width="80px;" alt="Ryan Kuhns"/><br /><sub><b>Ryan Kuhns</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=RNKuhns" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=RNKuhns" title="Documentation">📖</a> <a href="#tutorial-RNKuhns" title="Tutorials">✅</a> <a href="#example-RNKuhns" title="Examples">💡</a> <a href="#ideas-RNKuhns" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3ARNKuhns" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=RNKuhns" title="Tests">⚠️</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/achieveordie"><img src="https://avatars.githubusercontent.com/u/54197164?v=4?s=80" width="80px;" alt="Sagar Mishra"/><br /><sub><b>Sagar Mishra</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=achieveordie" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/achieveordie"><img src="https://avatars.githubusercontent.com/u/54197164?v=4?s=80" width="80px;" alt="Sagar Mishra"/><br /><sub><b>Sagar Mishra</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=achieveordie" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://sajay.online"><img src="https://avatars2.githubusercontent.com/u/25329624?v=4?s=80" width="80px;" alt="Sajaysurya Ganesh"/><br /><sub><b>Sajaysurya Ganesh</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=sajaysurya" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=sajaysurya" title="Documentation">📖</a> <a href="#design-sajaysurya" title="Design">🎨</a> <a href="#example-sajaysurya" title="Examples">💡</a> <a href="#ideas-sajaysurya" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=sajaysurya" title="Tests">⚠️</a> <a href="#tutorial-sajaysurya" title="Tutorials">✅</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/Saransh-cpp"><img src="https://avatars.githubusercontent.com/u/74055102?v=4?s=80" width="80px;" alt="Saransh Chopra"/><br /><sub><b>Saransh Chopra</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=Saransh-cpp" title="Documentation">📖</a> <a href="#infra-Saransh-cpp" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/satya-pattnaik-77a430144/"><img src="https://avatars.githubusercontent.com/u/22102468?v=4?s=80" width="80px;" alt="Satya Prakash Pattnaik"/><br /><sub><b>Satya Prakash Pattnaik</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=satya-pattnaik" title="Documentation">📖</a></td>
@@ -211,9 +212,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/SebasKoel"><img src="https://avatars3.githubusercontent.com/u/66252156?v=4?s=80" width="80px;" alt="Sebastiaan Koel"/><br /><sub><b>Sebastiaan Koel</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=SebasKoel" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=SebasKoel" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/shagn"><img src="https://avatars.githubusercontent.com/u/16029092?v=4?s=80" width="80px;" alt="Sebastian Hagn"/><br /><sub><b>Sebastian Hagn</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=shagn" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/AurumnPegasus"><img src="https://avatars.githubusercontent.com/u/54315149?v=4?s=80" width="80px;" alt="Shivansh Subramanian"/><br /><sub><b>Shivansh Subramanian</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=AurumnPegasus" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=AurumnPegasus" title="Code">💻</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/solomon-botchway-a1383821b/"><img src="https://avatars.githubusercontent.com/u/62394255?v=4?s=80" width="80px;" alt="Solomon Botchway"/><br /><sub><b>Solomon Botchway</b></sub></a><br /><a href="#maintenance-snnbotchway" title="Maintenance">🚧</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/solomon-botchway-a1383821b/"><img src="https://avatars.githubusercontent.com/u/62394255?v=4?s=80" width="80px;" alt="Solomon Botchway"/><br /><sub><b>Solomon Botchway</b></sub></a><br /><a href="#maintenance-snnbotchway" title="Maintenance">🚧</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/khrapovs"><img src="https://avatars.githubusercontent.com/u/3774663?v=4?s=80" width="80px;" alt="Stanislav Khrapov"/><br /><sub><b>Stanislav Khrapov</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=khrapovs" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/steenrotsman"><img src="https://avatars.githubusercontent.com/u/78110080?s=400&v=4?s=80" width="80px;" alt="Stijn Rotman"/><br /><sub><b>Stijn Rotman</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=steenrotsman" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/SveaMeyer13"><img src="https://avatars.githubusercontent.com/u/46671894?v=4?s=80" width="80px;" alt="Svea Marie Meyer"/><br /><sub><b>Svea Marie Meyer</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=SveaMeyer13" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=SveaMeyer13" title="Code">💻</a></td>
@@ -221,9 +222,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/TNTran92"><img src="https://avatars.githubusercontent.com/u/55965636?v=4?s=80" width="80px;" alt="TNTran92"/><br /><sub><b>TNTran92</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=TNTran92" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://thayeylolu.github.io/portfolio/"><img src="https://avatars.githubusercontent.com/u/13348874?v=4?s=80" width="80px;" alt="Taiwo Owoseni"/><br /><sub><b>Taiwo Owoseni</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=thayeylolu" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/lnthach"><img src="https://avatars0.githubusercontent.com/u/7788363?v=4?s=80" width="80px;" alt="Thach Le Nguyen"/><br /><sub><b>Thach Le Nguyen</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=lnthach" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=lnthach" title="Tests">⚠️</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/mathco-wf"><img src="https://avatars.githubusercontent.com/mathco-wf?s=80" width="80px;" alt="TheMathcompay Widget Factory Team"/><br /><sub><b>TheMathcompay Widget Factory Team</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=mathco-wf" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/mathco-wf"><img src="https://avatars.githubusercontent.com/mathco-wf?s=80" width="80px;" alt="TheMathcompay Widget Factory Team"/><br /><sub><b>TheMathcompay Widget Factory Team</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=mathco-wf" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/tombh"><img src="https://avatars.githubusercontent.com/u/160835?s=80&v=4?s=80" width="80px;" alt="Thomas Buckley-Houston"/><br /><sub><b>Thomas Buckley-Houston</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Atombh" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/xxl4tomxu98"><img src="https://avatars.githubusercontent.com/u/62292177?s=40&v=4?s=80" width="80px;" alt="Tom Xu"/><br /><sub><b>Tom Xu</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=xxl4tomxu98" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=xxl4tomxu98" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/tch"><img src="https://avatars3.githubusercontent.com/u/184076?v=4?s=80" width="80px;" alt="Tomasz Chodakowski"/><br /><sub><b>Tomasz Chodakowski</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=tch" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=tch" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Atch" title="Bug reports">🐛</a></td>
@@ -231,9 +232,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/utsavcoding"><img src="https://avatars3.githubusercontent.com/u/55446385?v=4?s=80" width="80px;" alt="Utsav Kumar Tiwari"/><br /><sub><b>Utsav Kumar Tiwari</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=utsavcoding" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=utsavcoding" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/victordremov"><img src="https://avatars.githubusercontent.com/u/32140716?s=80" width="80px;" alt="Viktor Dremov"/><br /><sub><b>Viktor Dremov</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=victordremov" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/ViktorKaz"><img src="https://avatars0.githubusercontent.com/u/33499138?v=4?s=80" width="80px;" alt="ViktorKaz"/><br /><sub><b>ViktorKaz</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=ViktorKaz" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=ViktorKaz" title="Documentation">📖</a> <a href="#design-ViktorKaz" title="Design">🎨</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/VyomkeshVyas"><img src="https://avatars.githubusercontent.com/u/110027694?v=4?s=80" width="80px;" alt="Vyomkesh Vyas"/><br /><sub><b>Vyomkesh Vyas</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=VyomkeshVyas" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=VyomkeshVyas" title="Documentation">📖</a> <a href="#example-VyomkeshVyas" title="Examples">💡</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=VyomkeshVyas" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/VyomkeshVyas"><img src="https://avatars.githubusercontent.com/u/110027694?v=4?s=80" width="80px;" alt="Vyomkesh Vyas"/><br /><sub><b>Vyomkesh Vyas</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=VyomkeshVyas" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=VyomkeshVyas" title="Documentation">📖</a> <a href="#example-VyomkeshVyas" title="Examples">💡</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=VyomkeshVyas" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/templierw/"><img src="https://github.com/templierw.png?s=80" width="80px;" alt="William Templier"/><br /><sub><b>William Templier</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=templierw" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/magittan"><img src="https://avatars0.githubusercontent.com/u/14024202?v=4?s=80" width="80px;" alt="William Zheng"/><br /><sub><b>William Zheng</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=magittan" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=magittan" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/yairbeer"><img src="https://avatars.githubusercontent.com/yairbeer?s=80" width="80px;" alt="Yair Beer"/><br /><sub><b>Yair Beer</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=yairbeer" title="Code">💻</a></td>
@@ -241,9 +242,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/xuyxu"><img src="https://avatars2.githubusercontent.com/u/22359569?v=4?s=80" width="80px;" alt="Yi-Xuan Xu"/><br /><sub><b>Yi-Xuan Xu</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=xuyxu" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=xuyxu" title="Tests">⚠️</a> <a href="#maintenance-xuyxu" title="Maintenance">🚧</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=xuyxu" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/ZiyaoWei"><img src="https://avatars.githubusercontent.com/u/940823?v=4?s=80" width="80px;" alt="Ziyao Wei"/><br /><sub><b>Ziyao Wei</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=ZiyaoWei" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/aa25desh"><img src="https://avatars1.githubusercontent.com/u/29518290?v=4?s=80" width="80px;" alt="aa25desh"/><br /><sub><b>aa25desh</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=aa25desh" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Aaa25desh" title="Bug reports">🐛</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/abandus"><img src="https://avatars2.githubusercontent.com/u/46486474?v=4?s=80" width="80px;" alt="abandus"/><br /><sub><b>abandus</b></sub></a><br /><a href="#ideas-abandus" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=abandus" title="Code">💻</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/abandus"><img src="https://avatars2.githubusercontent.com/u/46486474?v=4?s=80" width="80px;" alt="abandus"/><br /><sub><b>abandus</b></sub></a><br /><a href="#ideas-abandus" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=abandus" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/adoherty21"><img src="https://avatars.githubusercontent.com/u/52799751?s=400&v=4?s=80" width="80px;" alt="adoherty21"/><br /><sub><b>adoherty21</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Aadoherty21" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/bethrice44"><img src="https://avatars.githubusercontent.com/u/11226988?v=4?s=80" width="80px;" alt="bethrice44"/><br /><sub><b>bethrice44</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Abethrice44" title="Bug reports">🐛</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=bethrice44" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Abethrice44" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=bethrice44" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/big-o"><img src="https://avatars1.githubusercontent.com/u/1134151?v=4?s=80" width="80px;" alt="big-o"/><br /><sub><b>big-o</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=big-o" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=big-o" title="Tests">⚠️</a> <a href="#design-big-o" title="Design">🎨</a> <a href="#ideas-big-o" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Abig-o" title="Reviewed Pull Requests">👀</a> <a href="#tutorial-big-o" title="Tutorials">✅</a> <a href="#mentoring-big-o" title="Mentoring">🧑‍🏫</a></td>
@@ -251,9 +252,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/brettkoonce"><img src="https://avatars2.githubusercontent.com/u/11281814?v=4?s=80" width="80px;" alt="brett koonce"/><br /><sub><b>brett koonce</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=brettkoonce" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/btrtts"><img src="https://avatars3.githubusercontent.com/u/66252156?v=4?s=80" width="80px;" alt="btrtts"/><br /><sub><b>btrtts</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=btrtts" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/chizzi25"><img src="https://avatars3.githubusercontent.com/u/67911243?v=4?s=80" width="80px;" alt="chizzi25"/><br /><sub><b>chizzi25</b></sub></a><br /><a href="#blog-chizzi25" title="Blogposts">📝</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/chrisholder"><img src="https://avatars.githubusercontent.com/u/4674372?v=4?s=80" width="80px;" alt="chrisholder"/><br /><sub><b>chrisholder</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=chrisholder" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=chrisholder" title="Tests">⚠️</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=chrisholder" title="Documentation">📖</a> <a href="#design-chrisholder" title="Design">🎨</a> <a href="#example-chrisholder" title="Examples">💡</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Achrisholder" title="Bug reports">🐛</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/chrisholder"><img src="https://avatars.githubusercontent.com/u/4674372?v=4?s=80" width="80px;" alt="chrisholder"/><br /><sub><b>chrisholder</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=chrisholder" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=chrisholder" title="Tests">⚠️</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=chrisholder" title="Documentation">📖</a> <a href="#design-chrisholder" title="Design">🎨</a> <a href="#example-chrisholder" title="Examples">💡</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Achrisholder" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/danbartl"><img src="https://avatars.githubusercontent.com/u/19947407?v=4?s=80" width="80px;" alt="danbartl"/><br /><sub><b>danbartl</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Adanbartl" title="Bug reports">🐛</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=danbartl" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Adanbartl" title="Reviewed Pull Requests">👀</a> <a href="#talk-danbartl" title="Talks">📢</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=danbartl" title="Tests">⚠️</a> <a href="#tutorial-danbartl" title="Tutorials">✅</a> <a href="#video-danbartl" title="Videos">📹</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/hamzahiqb"><img src="https://avatars3.githubusercontent.com/u/10302415?v=4?s=80" width="80px;" alt="hamzahiqb"/><br /><sub><b>hamzahiqb</b></sub></a><br /><a href="#infra-hamzahiqb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/hiqbal2"><img src="https://avatars3.githubusercontent.com/u/10302415?v=4?s=80" width="80px;" alt="hiqbal2"/><br /><sub><b>hiqbal2</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=hiqbal2" title="Documentation">📖</a></td>
@@ -261,9 +262,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/jschemm"><img src="https://avatars.githubusercontent.com/u/81151346?v=4?s=80" width="80px;" alt="jschemm"/><br /><sub><b>jschemm</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=jschemm" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/kkoziara"><img src="https://avatars1.githubusercontent.com/u/4346849?v=4?s=80" width="80px;" alt="kkoziara"/><br /><sub><b>kkoziara</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=kkoziara" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Akkoziara" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/matteogales"><img src="https://avatars0.githubusercontent.com/u/9269326?v=4?s=80" width="80px;" alt="matteogales"/><br /><sub><b>matteogales</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=matteogales" title="Code">💻</a> <a href="#design-matteogales" title="Design">🎨</a> <a href="#ideas-matteogales" title="Ideas, Planning, & Feedback">🤔</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/oleskiewicz"><img src="https://avatars1.githubusercontent.com/u/5682158?v=4?s=80" width="80px;" alt="oleskiewicz"/><br /><sub><b>oleskiewicz</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=oleskiewicz" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=oleskiewicz" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=oleskiewicz" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/oleskiewicz"><img src="https://avatars1.githubusercontent.com/u/5682158?v=4?s=80" width="80px;" alt="oleskiewicz"/><br /><sub><b>oleskiewicz</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=oleskiewicz" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=oleskiewicz" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=oleskiewicz" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/pabworks"><img src="https://avatars.githubusercontent.com/u/32725127?v=4?s=80" width="80px;" alt="pabworks"/><br /><sub><b>pabworks</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=pabworks" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=pabworks" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/xloem"><img src="https://avatars.githubusercontent.com/u/279585?v=4?s=80" width="80px;" alt="patiently pending world peace"/><br /><sub><b>patiently pending world peace</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=xloem" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/raishubham1"><img src="https://avatars3.githubusercontent.com/u/29356417?v=4?s=80" width="80px;" alt="raishubham1"/><br /><sub><b>raishubham1</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=raishubham1" title="Documentation">📖</a></td>
@@ -271,9 +272,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/sophijka"><img src="https://avatars2.githubusercontent.com/u/47450591?v=4?s=80" width="80px;" alt="sophijka"/><br /><sub><b>sophijka</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=sophijka" title="Documentation">📖</a> <a href="#maintenance-sophijka" title="Maintenance">🚧</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/sri1419"><img src="https://avatars2.githubusercontent.com/u/65078278?v=4?s=80" width="80px;" alt="sri1419"/><br /><sub><b>sri1419</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=sri1419" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/tensorflow-as-tf"><img src="https://avatars.githubusercontent.com/u/51345718?v=4?s=80" width="80px;" alt="tensorflow-as-tf"/><br /><sub><b>tensorflow-as-tf</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=tensorflow-as-tf" title="Code">💻</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/vedazeren"><img src="https://avatars3.githubusercontent.com/u/63582874?v=4?s=80" width="80px;" alt="vedazeren"/><br /><sub><b>vedazeren</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=vedazeren" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=vedazeren" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/vedazeren"><img src="https://avatars3.githubusercontent.com/u/63582874?v=4?s=80" width="80px;" alt="vedazeren"/><br /><sub><b>vedazeren</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=vedazeren" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=vedazeren" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/vincent-nich12"><img src="https://avatars3.githubusercontent.com/u/36476633?v=4?s=80" width="80px;" alt="vincent-nich12"/><br /><sub><b>vincent-nich12</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=vincent-nich12" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/vollmersj"><img src="https://avatars2.githubusercontent.com/u/12613127?v=4?s=80" width="80px;" alt="vollmersj"/><br /><sub><b>vollmersj</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=vollmersj" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/xiaobenbenecho"><img src="https://avatars.githubusercontent.com/u/17461849?v=4?s=80" width="80px;" alt="xiaobenbenecho"/><br /><sub><b>xiaobenbenecho</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=xiaobenbenecho" title="Code">💻</a></td>
diff --git a/aeon/classification/compose/_pipeline.py b/aeon/classification/compose/_pipeline.py
index b5702ed5..b1d0c5fe 100644
--- a/aeon/classification/compose/_pipeline.py
+++ b/aeon/classification/compose/_pipeline.py
@@ -452,7 +452,7 @@ class SklearnClassifierPipeline(_HeterogenousMetaEstimator, BaseClassifier):
 
     def _convert_X_to_sklearn(self, X):
         """Convert a Table or Panel X to 2D numpy required by sklearn."""
-        output_type = self.transformers_.get_tag("scitype:transform-output")
+        output_type = self.transformers_.get_tag("output_data_type")
         # if output_type is Primitives, output is Table, convert to 2D numpy array
         if output_type == "Primitives":
             Xt = convert_to(X, to_type="numpy2D", as_scitype="Table")
@@ -461,8 +461,8 @@ class SklearnClassifierPipeline(_HeterogenousMetaEstimator, BaseClassifier):
             Xt = convert_to(X, to_type="numpyflat", as_scitype="Panel")
         else:
             raise TypeError(
-                f"unexpected X output type in {type(self.classifier).__name__}, "
-                f'in tag "scitype:transform-output", found "{output_type}", '
+                f"unexpected X output type "
+                f'in tag "output_data_type", found "{output_type}", '
                 'expected one of "Primitives" or "Series"'
             )
 
diff --git a/aeon/classification/deep_learning/base.py b/aeon/classification/deep_learning/base.py
index 7aae0e48..da5a5693 100644
--- a/aeon/classification/deep_learning/base.py
+++ b/aeon/classification/deep_learning/base.py
@@ -34,7 +34,7 @@ class BaseDeepClassifier(BaseClassifier, ABC):
     ----------
     batch_size : int, default = 40
         training batch size for the model
-    last_file_name      : str, default = "last_model"
+    last_file_name : str, default = "last_model"
         The name of the file of the last model, used
         only if save_last_model_to_file is used
 
@@ -74,7 +74,7 @@ class BaseDeepClassifier(BaseClassifier, ABC):
         ----------
         input_shape : tuple
             The shape of the data fed into the input layer
-        n_classes: int
+        n_classes : int
             The number of classes, which shall become the size of the output
             layer
 
@@ -90,7 +90,7 @@ class BaseDeepClassifier(BaseClassifier, ABC):
 
         Returns
         -------
-        history: dict or None,
+        history : dict or None,
             Dictionary containing model's train/validation losses and metrics
 
         """
@@ -112,8 +112,8 @@ class BaseDeepClassifier(BaseClassifier, ABC):
         Parameters
         ----------
         X : an np.ndarray of shape = (n_instances, n_dimensions, series_length)
-            The training input samples.         input_checks: boolean
-            whether to check the X parameter
+            The training input samples. input_checks : boolean
+            Whether to check the X parameter
 
         Returns
         -------
diff --git a/aeon/classification/deep_learning/cnn.py b/aeon/classification/deep_learning/cnn.py
index 3f8bd1a9..73a6014b 100644
--- a/aeon/classification/deep_learning/cnn.py
+++ b/aeon/classification/deep_learning/cnn.py
@@ -57,11 +57,11 @@ class CNNClassifier(BaseDeepClassifier):
         The number of samples per gradient update.
     verbose : boolean, default = False
         Whether to output extra information.
-    loss : string, default="mean_squared_error"
+    loss : string, default = "mean_squared_error"
         Fit parameter for the keras model.
-    optimizer : keras.optimizer, default=keras.optimizers.Adam()
-    metrics : list of strings, default=["accuracy"]
-    callbacks : keras.callbacks, default=model_checkpoint
+    optimizer : keras.optimizer, default = keras.optimizers.Adam()
+    metrics : list of strings, default = ["accuracy"]
+    callbacks : keras.callbacks, default = model_checkpoint
         To save best model on training loss.
     file_path : file_path for the best model
         Only used if checkpoint is used as callback.
@@ -95,7 +95,7 @@ class CNNClassifier(BaseDeepClassifier):
     >>> from aeon.datasets import load_unit_test
     >>> X_train, y_train = load_unit_test(split="train")
     >>> X_test, y_test = load_unit_test(split="test")
-    >>> cnn = CNNClassifier(n_epochs=20,batch_size=4)  # doctest: +SKIP
+    >>> cnn = CNNClassifier(n_epochs=20, batch_size=4)  # doctest: +SKIP
     >>> cnn.fit(X_train, y_train)  # doctest: +SKIP
     CNNClassifier(...)
     """
@@ -174,16 +174,16 @@ class CNNClassifier(BaseDeepClassifier):
     def build_model(self, input_shape, n_classes, **kwargs):
         """Construct a compiled, un-trained, keras model that is ready for training.
 
-        In aeon, time series are stored in numpy arrays of shape (d,m), where d
+        In aeon, time series are stored in numpy arrays of shape (d, m), where d
         is the number of dimensions, m is the series length. Keras/tensorflow assume
-        data is in shape (m,d). This method also assumes (m,d). Transpose should
+        data is in shape (m, d). This method also assumes (m, d). Transpose should
         happen in fit.
 
         Parameters
         ----------
         input_shape : tuple
-            The shape of the data fed into the input layer, should be (m,d)
-        n_classes: int
+            The shape of the data fed into the input layer, should be (m, d)
+        n_classes : int
             The number of classes, which becomes the size of the output layer
 
         Returns
@@ -291,9 +291,9 @@ class CNNClassifier(BaseDeepClassifier):
 
         Parameters
         ----------
-        parameter_set : str, default="default"
+        parameter_set : str, default = "default"
             Name of the set of test parameters to return, for use in tests. If no
-            special parameters are defined for a value, will return `"default"` set.
+            special parameters are defined for a value, will return "default" set.
             For classifiers, a "default" set of parameters should be provided for
             general testing, and a "results_comparison" set for comparing against
             previously recorded results if the general set does not produce suitable
@@ -301,7 +301,7 @@ class CNNClassifier(BaseDeepClassifier):
 
         Returns
         -------
-        params : dict or list of dict, default={}
+        params : dict or list of dict, default = {}
             Parameters to create testing instances of the class.
             Each dict are parameters to construct an "interesting" test instance, i.e.,
             `MyClass(**params)` or `MyClass(**params[i])` creates a valid test instance.
diff --git a/aeon/classification/deep_learning/encoder.py b/aeon/classification/deep_learning/encoder.py
index e2f3e467..fadb2722 100644
--- a/aeon/classification/deep_learning/encoder.py
+++ b/aeon/classification/deep_learning/encoder.py
@@ -23,46 +23,46 @@ class EncoderClassifier(BaseDeepClassifier):
 
     Parameters
     ----------
-    kernel_size    : array of int, default = [5, 11, 21]
-        specifying the length of the 1D convolution windows
-    n_filters       : array of int, default = [128, 256, 512]
-        specifying the number of 1D convolution filters used for each layer,
-        the shape of this array should be the same as kernel_size
-    max_pool_size   : int, default = 2
-        size of the max pooling windows
-    activation      : string, default = sigmoid
-        keras activation function
-    dropout_proba   : float, default = 0.2
-        specifying the dropout layer probability
-    padding         : string, default = same
-        specifying the type of padding used for the 1D convolution
-    strides         : int, default = 1
-        specifying the sliding rate of the 1D convolution filter
-    fc_units        : int, default = 256
-        specifying the number of units in the hiddent fully
-        connected layer used in the EncoderNetwork
-    file_path           : str, default = "./"
-            file_path when saving model_Checkpoint callback
-    save_best_model     : bool, default = False
+    kernel_size : array of int, default = [5, 11, 21]
+        Specifying the length of the 1D convolution windows.
+    n_filters : array of int, default = [128, 256, 512]
+        Specifying the number of 1D convolution filters used for each layer,
+        the shape of this array should be the same as kernel_size.
+    max_pool_size : int, default = 2
+        Size of the max pooling windows.
+    activation : string, default = sigmoid
+        Keras activation function.
+    dropout_proba : float, default = 0.2
+        Specifying the dropout layer probability.
+    padding : string, default = same
+        Specifying the type of padding used for the 1D convolution.
+    strides : int, default = 1
+        Specifying the sliding rate of the 1D convolution filter.
+    fc_units : int, default = 256
+        Specifying the number of units in the hidden fully
+        connected layer used in the EncoderNetwork.
+    file_path : str, default = "./"
+        File path when saving model_Checkpoint callback.
+    save_best_model : bool, default = False
         Whether or not to save the best model, if the
         modelcheckpoint callback is used by default,
         this condition, if True, will prevent the
         automatic deletion of the best saved model from
-        file and the user can choose the file name
-    save_last_model     : bool, default = False
+        file and the user can choose the file name.
+    save_last_model : bool, default = False
         Whether or not to save the last model, last
         epoch trained, using the base class method
-        save_last_model_to_file
-    best_file_name      : str, default = "best_model"
+        save_last_model_to_file.
+    best_file_name : str, default = "best_model"
         The name of the file of the best model, if
         save_best_model is set to False, this parameter
-        is discarded
-    last_file_name      : str, default = "last_model"
+        is discarded.
+    last_file_name : str, default = "last_model"
         The name of the file of the last model, if
         save_last_model is set to False, this parameter
-        is discarded
-    random_state    : int, default = 0
-        seed to any needed random actions
+        is discarded.
+    random_state : int, default = 0
+        Seed to any needed random actions.
 
     Notes
     -----
@@ -152,17 +152,17 @@ class EncoderClassifier(BaseDeepClassifier):
     def build_model(self, input_shape, n_classes, **kwargs):
         """Construct a compiled, un-trained, keras model that is ready for training.
 
-        In aeon, time series are stored in numpy arrays of shape (d,m), where d
+        In aeon, time series are stored in numpy arrays of shape (d, m), where d
         is the number of dimensions, m is the series length. Keras/tensorflow assume
-        data is in shape (m,d). This method also assumes (m,d). Transpose should
+        data is in shape (m, d). This method also assumes (m, d). Transpose should
         happen in fit.
 
         Parameters
         ----------
         input_shape : tuple
-            The shape of the data fed into the input layer, should be (m,d)
-        n_classes: int
-            The number of classes, which becomes the size of the output layer
+            The shape of the data fed into the input layer, should be (m, d).
+        n_classes : int
+            The number of classes, which becomes the size of the output layer.
 
         Returns
         -------
@@ -271,9 +271,9 @@ class EncoderClassifier(BaseDeepClassifier):
 
         Parameters
         ----------
-        parameter_set : str, default="default"
+        parameter_set : str, default = "default"
             Name of the set of test parameters to return, for use in tests. If no
-            special parameters are defined for a value, will return `"default"` set.
+            special parameters are defined for a value, will return "default" set.
             For classifiers, a "default" set of parameters should be provided for
             general testing, and a "results_comparison" set for comparing against
             previously recorded results if the general set does not produce suitable
@@ -281,7 +281,7 @@ class EncoderClassifier(BaseDeepClassifier):
 
         Returns
         -------
-        params : dict or list of dict, default={}
+        params : dict or list of dict, default = {}
             Parameters to create testing instances of the class.
             Each dict are parameters to construct an "interesting" test instance, i.e.,
             `MyClass(**params)` or `MyClass(**params[i])` creates a valid test instance.
diff --git a/aeon/classification/deep_learning/fcn.py b/aeon/classification/deep_learning/fcn.py
index 645b6dfe..8eea5c7d 100644
--- a/aeon/classification/deep_learning/fcn.py
+++ b/aeon/classification/deep_learning/fcn.py
@@ -22,58 +22,58 @@ class FCNClassifier(BaseDeepClassifier):
 
     Parameters
     ----------
-    n_layers        : int, default = 3
-        number of convolution layers
-    n_filters       : int or list of int, default = [128,256,128]
-        number of filters used in convolution layers
-    kernel_size     : int or list of int, default = [8,5,3]
-        size of convolution kernel
-    dilation_rate   : int or list of int, default = 1
-        the dilation rate for convolution
-    strides         : int or list of int, default = 1
-        the strides of the convolution filter
-    padding         : str or list of str, default = "same"
-        the type of padding used for convolution
-    activation      : str or list of str, default = "relu"
-        activation used after the convolution
-    use_bias        : bool or list of bool, default = True
-        whether or not ot use bias in convolution
-    n_epochs        : int, default = 2000
-        the number of epochs to train the model
-    batch_size      : int, default = 16
-        the number of samples per gradient update.
-    use_mini_batch_size : bool, default = True,
-        whether or not to use the mini batch size formula
-    random_state    : int or None, default=None
+    n_layers : int, default = 3
+        Number of convolution layers.
+    n_filters : int or list of int, default = [128,256,128]
+        Number of filters used in convolution layers.
+    kernel_size : int or list of int, default = [8,5,3]
+        Size of convolution kernel.
+    dilation_rate : int or list of int, default = 1
+        The dilation rate for convolution.
+    strides : int or list of int, default = 1
+        The strides of the convolution filter.
+    padding : str or list of str, default = "same"
+        The type of padding used for convolution.
+    activation : str or list of str, default = "relu"
+        Activation used after the convolution.
+    use_bias : bool or list of bool, default = True
+        Whether or not ot use bias in convolution.
+    n_epochs : int, default = 2000
+        The number of epochs to train the model.
+    batch_size : int, default = 16
+        The number of samples per gradient update.
+    use_mini_batch_size : bool, default = True
+        Whether or not to use the mini batch size formula.
+    random_state : int or None, default = None
         Seed for random number generation.
-    verbose         : boolean, default = False
-        whether to output extra information
-    loss            : string, default="mean_squared_error"
-        fit parameter for the keras model
-    metrics         : list of strings, default=["accuracy"],
-    optimizer       : keras.optimizers object, default = Adam(lr=0.01)
-        specify the optimizer and the learning rate to be used.
-    file_path       : str, default = "./"
-        file path to save best model
-    save_best_model     : bool, default = False
+    verbose : boolean, default = False
+        Whether to output extra information.
+    loss : string, default = "mean_squared_error"
+        Fit parameter for the keras model.
+    metrics : list of strings, default = ["accuracy"]
+    optimizer : keras.optimizers object, default = Adam(lr=0.01)
+        Specify the optimizer and the learning rate to be used.
+    file_path : str, default = "./"
+        File path to save best model.
+    save_best_model : bool, default = False
         Whether or not to save the best model, if the
         modelcheckpoint callback is used by default,
         this condition, if True, will prevent the
         automatic deletion of the best saved model from
-        file and the user can choose the file name
-    save_last_model     : bool, default = False
+        file and the user can choose the file name.
+    save_last_model : bool, default = False
         Whether or not to save the last model, last
         epoch trained, using the base class method
-        save_last_model_to_file
-    best_file_name      : str, default = "best_model"
+        save_last_model_to_file.
+    best_file_name : str, default = "best_model"
         The name of the file of the best model, if
         save_best_model is set to False, this parameter
-        is discarded
-    last_file_name      : str, default = "last_model"
+        is discarded.
+    last_file_name : str, default = "last_model"
         The name of the file of the last model, if
         save_last_model is set to False, this parameter
-        is discarded
-    callbacks       : keras.callbacks, default = None
+        is discarded.
+    callbacks : keras.callbacks, default = None
     Notes
     -----
     Adapted from the implementation from Fawaz et. al
@@ -90,7 +90,7 @@ class FCNClassifier(BaseDeepClassifier):
     >>> from aeon.datasets import load_unit_test
     >>> X_train, y_train = load_unit_test(split="train", return_X_y=True)
     >>> X_test, y_test = load_unit_test(split="test", return_X_y=True)
-    >>> fcn = FCNClassifier(n_epochs=20,batch_size=4)  # doctest: +SKIP
+    >>> fcn = FCNClassifier(n_epochs=20, batch_size=4)  # doctest: +SKIP
     >>> fcn.fit(X_train, y_train)  # doctest: +SKIP
     FCNClassifier(...)
     """
@@ -176,9 +176,9 @@ class FCNClassifier(BaseDeepClassifier):
         Parameters
         ----------
         input_shape : tuple
-            The shape of the data fed into the input layer, should be (m,d)
-        n_classes: int
-            The number of classes, which becomes the size of the output layer
+            The shape of the data fed into the input layer, should be (m, d).
+        n_classes : int
+            The number of classes, which becomes the size of the output layer.
 
         Returns
         -------
@@ -293,9 +293,9 @@ class FCNClassifier(BaseDeepClassifier):
 
         Parameters
         ----------
-        parameter_set : str, default="default"
+        parameter_set : str, default = "default"
             Name of the set of test parameters to return, for use in tests. If no
-            special parameters are defined for a value, will return `"default"` set.
+            special parameters are defined for a value, will return "default" set.
             For classifiers, a "default" set of parameters should be provided for
             general testing, and a "results_comparison" set for comparing against
             previously recorded results if the general set does not produce suitable
@@ -303,7 +303,7 @@ class FCNClassifier(BaseDeepClassifier):
 
         Returns
         -------
-        params : dict or list of dict, default={}
+        params : dict or list of dict, default = {}
             Parameters to create testing instances of the class.
             Each dict are parameters to construct an "interesting" test instance, i.e.,
             `MyClass(**params)` or `MyClass(**params[i])` creates a valid test instance.
diff --git a/aeon/classification/deep_learning/mlp.py b/aeon/classification/deep_learning/mlp.py
index 3084e584..a23f3719 100644
--- a/aeon/classification/deep_learning/mlp.py
+++ b/aeon/classification/deep_learning/mlp.py
@@ -22,44 +22,43 @@ class MLPClassifier(BaseDeepClassifier):
 
     Parameters
     ----------
-    should inherited fields be listed here?
-    n_epochs       : int, default = 2000
+    n_epochs : int, default = 2000
         the number of epochs to train the model
-    batch_size      : int, default = 16
+    batch_size : int, default = 16
         the number of samples per gradient update.
-    random_state    : int or None, default=None
+    random_state : int or None, default=None
         Seed for random number generation.
-    verbose         : boolean, default = False
+    verbose : boolean, default = False
         whether to output extra information
-    loss            : string, default="mean_squared_error"
+    loss : string, default="mean_squared_error"
         fit parameter for the keras model
-    file_path           : str, default = "./"
-            file_path when saving model_Checkpoint callback
-    save_best_model     : bool, default = False
+    file_path : str, default = "./"
+        file_path when saving model_Checkpoint callback
+    save_best_model : bool, default = False
         Whether or not to save the best model, if the
         modelcheckpoint callback is used by default,
         this condition, if True, will prevent the
         automatic deletion of the best saved model from
         file and the user can choose the file name
-    save_last_model     : bool, default = False
+    save_last_model : bool, default = False
         Whether or not to save the last model, last
         epoch trained, using the base class method
         save_last_model_to_file
-    best_file_name      : str, default = "best_model"
+    best_file_name : str, default = "best_model"
         The name of the file of the best model, if
         save_best_model is set to False, this parameter
         is discarded
-    last_file_name      : str, default = "last_model"
+    last_file_name : str, default = "last_model"
         The name of the file of the last model, if
         save_last_model is set to False, this parameter
         is discarded
-    optimizer       : keras.optimizer, default=keras.optimizers.Adadelta(),
-    metrics         : list of strings, default=["accuracy"],
-    activation      : string or a tf callable, default="sigmoid"
+    optimizer : keras.optimizer, default=keras.optimizers.Adadelta(),
+    metrics : list of strings, default=["accuracy"],
+    activation : string or a tf callable, default="sigmoid"
         Activation function used in the output linear layer.
         List of available activation functions:
         https://keras.io/api/layers/activations/
-    use_bias        : boolean, default = True
+    use_bias : boolean, default = True
         whether the layer uses a bias vector.
 
     Notes
@@ -78,7 +77,7 @@ class MLPClassifier(BaseDeepClassifier):
     >>> from aeon.classification.deep_learning.mlp import MLPClassifier
     >>> from aeon.datasets import load_unit_test
     >>> X_train, y_train = load_unit_test(split="train")
-    >>> mlp = MLPClassifier(n_epochs=20,batch_size=4)  # doctest: +SKIP
+    >>> mlp = MLPClassifier(n_epochs=20, batch_size=4)  # doctest: +SKIP
     >>> mlp.fit(X_train, y_train)  # doctest: +SKIP
     MLPClassifier(...)
     """
diff --git a/aeon/classification/deep_learning/resnet.py b/aeon/classification/deep_learning/resnet.py
index 54ec16be..6f1da767 100644
--- a/aeon/classification/deep_learning/resnet.py
+++ b/aeon/classification/deep_learning/resnet.py
@@ -23,64 +23,64 @@ class ResNetClassifier(BaseDeepClassifier):
 
     Parameters
     ----------
-        n_residual_blocks : int, default = 3
-            The number of residual blocks of ResNet's model.
-        n_conv_per_residual_block : int, default = 3
-            The number of convolution blocks in each residual block.
-        n_filters : int or list of int, default = [128, 64, 64]
-            The number of convolution filters for all the convolution layers in the same
-            residual block, if not a list, the same number of filters is used in all
-            convolutions of all residual blocks.
-        kernel_sizes : int or list of int, default = [8, 5, 3]
-            The kernel size of all the convolution layers in one residual block, if not
-            a list, the same kernel size is used in all convolution layers.
-        strides : int or list of int, default = 1
-            The strides of convolution kernels in each of the convolution layers in
-            one residual block, if not a list, the same kernel size is used in all
-            convolution layers.
-        dilation_rate : int or list of int, default = 1
-            The dilation rate of the convolution layers in one residual block, if not
-            a list, the same kernel size is used in all convolution layers.
-        padding : str or list of str, default = 'padding'
-            The type of padding used in the convolution layers in one residual block, if
-            not a list, the same kernel size is used in all convolution layers.
-        activation : str or list of str, default = 'relu'
-            keras activation used in the convolution layers in one residual block,
-            if not a list, the same kernel size is used in all convolution layers.
-        use_bia : bool or list of bool, default = True
-            Condition on whether or not to use bias values in the convolution layers
-            in one residual block, if not a list, the same kernel size is used in all
-            convolution layers.
-        n_epochs : int, default = 1500
-            The number of epochs to train the model.
-        batch_size : int, default = 16
-            The number of samples per gradient update.
-        use_mini_batch_size : bool, default = False
-            Condition on using the mini batch size formula Wang et al.
-        callbacks : callable or None, default ReduceOnPlateau and ModelCheckpoint
-            List of tf.keras.callbacks.Callback objects.
-        file_path : str, default = './'
-            file_path when saving model_Checkpoint callback.
-        save_best_model : bool, default = False
-            Whether or not to save the best model, if the modelcheckpoint callback is
-            used by default, this condition, if True, will prevent the automatic
-            deletion of the best saved model from file and the user can choose the
-            file name.
-        save_last_model : bool, default = False
-            Whether or not to save the last model, last epoch trained, using the base
-            class method save_last_model_to_file.
-        best_file_name : str, default = "best_model"
-            The name of the file of the best model, if save_best_model is set to
-            False, this parameter is discarded.
-        last_file_name : str, default = "last_model"
-            The name of the file of the last model, if save_last_model is set to
-            False, this parameter is discarded.
-        verbose : boolean, default = False
-            whether to output extra information
-        loss : string, default="mean_squared_error"
-            fit parameter for the keras model.
-        optimizer : keras.optimizer, default=keras.optimizers.Adam()
-        metrics : list of strings, default=["accuracy"]
+    n_residual_blocks : int, default = 3
+        The number of residual blocks of ResNet's model.
+    n_conv_per_residual_block : int, default = 3
+        The number of convolution blocks in each residual block.
+    n_filters : int or list of int, default = [128, 64, 64]
+        The number of convolution filters for all the convolution layers in the same
+        residual block, if not a list, the same number of filters is used in all
+        convolutions of all residual blocks.
+    kernel_sizes : int or list of int, default = [8, 5, 3]
+        The kernel size of all the convolution layers in one residual block, if not
+        a list, the same kernel size is used in all convolution layers.
+    strides : int or list of int, default = 1
+        The strides of convolution kernels in each of the convolution layers in
+        one residual block, if not a list, the same kernel size is used in all
+        convolution layers.
+    dilation_rate : int or list of int, default = 1
+        The dilation rate of the convolution layers in one residual block, if not
+        a list, the same kernel size is used in all convolution layers.
+    padding : str or list of str, default = 'padding'
+        The type of padding used in the convolution layers in one residual block, if
+        not a list, the same kernel size is used in all convolution layers.
+    activation : str or list of str, default = 'relu'
+        keras activation used in the convolution layers in one residual block,
+        if not a list, the same kernel size is used in all convolution layers.
+    use_bia : bool or list of bool, default = True
+        Condition on whether or not to use bias values in the convolution layers
+        in one residual block, if not a list, the same kernel size is used in all
+        convolution layers.
+    n_epochs : int, default = 1500
+        The number of epochs to train the model.
+    batch_size : int, default = 16
+        The number of samples per gradient update.
+    use_mini_batch_size : bool, default = False
+        Condition on using the mini batch size formula Wang et al.
+    callbacks : callable or None, default ReduceOnPlateau and ModelCheckpoint
+        List of tf.keras.callbacks.Callback objects.
+    file_path : str, default = './'
+        file_path when saving model_Checkpoint callback.
+    save_best_model : bool, default = False
+        Whether or not to save the best model, if the modelcheckpoint callback is
+        used by default, this condition, if True, will prevent the automatic
+        deletion of the best saved model from file and the user can choose the
+        file name.
+    save_last_model : bool, default = False
+        Whether or not to save the last model, last epoch trained, using the base
+        class method save_last_model_to_file.
+    best_file_name : str, default = "best_model"
+        The name of the file of the best model, if save_best_model is set to
+        False, this parameter is discarded.
+    last_file_name : str, default = "last_model"
+        The name of the file of the last model, if save_last_model is set to
+        False, this parameter is discarded.
+    verbose : boolean, default = False
+        whether to output extra information
+    loss : string, default = "mean_squared_error"
+        fit parameter for the keras model.
+    optimizer : keras.optimizer, default = keras.optimizers.Adam()
+    metrics : list of strings, default = ["accuracy"]
 
     Notes
     -----
@@ -89,7 +89,7 @@ class ResNetClassifier(BaseDeepClassifier):
 
     References
     ----------
-        .. [1] Wang et. al, Time series classification from
+    .. [1] Wang et. al, Time series classification from
     scratch with deep neural networks: A strong baseline,
     International joint conference on neural networks (IJCNN), 2017.
 
diff --git a/aeon/classification/deep_learning/tapnet.py b/aeon/classification/deep_learning/tapnet.py
index 23146e0b..f3a42da1 100644
--- a/aeon/classification/deep_learning/tapnet.py
+++ b/aeon/classification/deep_learning/tapnet.py
@@ -26,43 +26,43 @@ class TapNetClassifier(BaseDeepClassifier):
 
     Parameters
     ----------
-    filter_sizes        : array of int, default = (256, 256, 128)
+    filter_sizes : array of int, default = (256, 256, 128)
         sets the kernel size argument for each convolutional block.
         Controls number of convolutional filters
         and number of neurons in attention dense layers.
-    kernel_sizes        : array of int, default = (8, 5, 3)
+    kernel_sizes : array of int, default = (8, 5, 3)
         controls the size of the convolutional kernels
-    layers              : array of int, default = (500, 300)
+    layers : array of int, default = (500, 300)
         size of dense layers
-    reduction           : int, default = 16
+    reduction : int, default = 16
         divides the number of dense neurons in the first layer of the attention block.
-    n_epochs            : int, default = 2000
+    n_epochs : int, default = 2000
         number of epochs to train the model
-    batch_size          : int, default = 16
+    batch_size : int, default = 16
         number of samples per update
-    dropout             : float, default = 0.5
+    dropout : float, default = 0.5
         dropout rate, in the range [0, 1)
-    dilation            : int, default = 1
+    dilation : int, default = 1
         dilation value
-    activation          : str, default = "sigmoid"
+    activation : str, default = "sigmoid"
         activation function for the last output layer
-    loss                : str, default = "binary_crossentropy"
+    loss : str, default = "binary_crossentropy"
         loss function for the classifier
-    optimizer           : str or None, default = "Adam(lr=0.01)"
+    optimizer : str or None, default = "Adam(lr=0.01)"
         gradient updating function for the classifer
-    use_bias            : bool, default = True
+    use_bias : bool, default = True
         whether to use bias in the output dense layer
-    use_rp              : bool, default = True
+    use_rp : bool, default = True
         whether to use random projections
-    use_att             : bool, default = True
+    use_att : bool, default = True
         whether to use self attention
-    use_lstm        : bool, default = True
+    use_lstm : bool, default = True
         whether to use an LSTM layer
-    use_cnn         : bool, default = True
+    use_cnn : bool, default = True
         whether to use a CNN layer
-    verbose         : bool, default = False
+    verbose : bool, default = False
         whether to output extra information
-    random_state    : int or None, default = None
+    random_state : int or None, default = None
         seed for random
 
     Attributes
@@ -213,9 +213,9 @@ class TapNetClassifier(BaseDeepClassifier):
 
         Parameters
         ----------
-        X   : np.ndarray of shape = (n_instances(n), n_dimensions(d), series_length(m))
+        X : np.ndarray of shape = (n_instances(n), n_dimensions(d), series_length(m))
             Input training samples
-        y   : np.ndarray of shape n
+        y : np.ndarray of shape n
             Input training class labels
 
         Returns
@@ -251,7 +251,7 @@ class TapNetClassifier(BaseDeepClassifier):
         ----------
         parameter_set : str, default="default"
             Name of the set of test parameters to return, for use in tests. If no
-            special parameters are defined for a value, will return `"default"` set.
+            special parameters are defined for a value, will return "default" set.
 
         Returns
         -------
diff --git a/aeon/forecasting/compose/_bagging.py b/aeon/forecasting/compose/_bagging.py
index 5b2d0aef..7149a4c9 100644
--- a/aeon/forecasting/compose/_bagging.py
+++ b/aeon/forecasting/compose/_bagging.py
@@ -39,8 +39,8 @@ class BaggingForecaster(BaseForecaster):
     bootstrap_transformer : BaseTransformer
         (aeon.transformations.bootstrap.STLBootstrapTransformer)
         Bootstrapping Transformer that takes a series (with tag
-        scitype:transform-input=Series) as input and returns a panel (with tag
-        scitype:transform-input=Panel) of bootstrapped time series if not specified
+        input_data_type=Series) as input and returns a panel (with tag
+        input_data_type=Panel) of bootstrapped time series if not specified
         aeon.transformations.bootstrap.STLBootstrapTransformer is used.
     forecaster : BaseForecaster (aeon.forecating.ets.AutoETS)
         A valid aeon Forecaster. If not specified aeon.forecating.ets.AutoETS is
@@ -166,12 +166,10 @@ class BaggingForecaster(BaseForecaster):
             self.forecaster_ = clone(self.forecaster)
 
         if (
-            self.bootstrap_transformer_.get_tag(
-                "scitype:transform-input", raise_error=False
-            )
+            self.bootstrap_transformer_.get_tag("input_data_type", raise_error=False)
             != "Series"
             and self.bootstrap_transformer_.get_tag(
-                "scitype:transform-output", raise_error=False
+                "output_data_type", raise_error=False
             )
             != "Panel"
             and not isinstance(self.bootstrap_transformer_, BaseTransformer)
diff --git a/aeon/performance_metrics/forecasting/_classes.py b/aeon/performance_metrics/forecasting/_classes.py
index 8cfa81db..ddbe3864 100644
--- a/aeon/performance_metrics/forecasting/_classes.py
+++ b/aeon/performance_metrics/forecasting/_classes.py
@@ -133,10 +133,10 @@ class BaseForecastingErrorMetric(BaseMetric):
         y_true : time series in aeon compatible data container format
             Ground truth (correct) target values
             y can be in one of the following formats:
-            Series scitype: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
-            Panel scitype: pd.DataFrame with 2-level row MultiIndex,
+            Series type: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
+            Panel type: pd.DataFrame with 2-level row MultiIndex,
                 3D np.ndarray, list of Series pd.DataFrame, or nested pd.DataFrame
-            Hierarchical scitype: pd.DataFrame with 3 or more level row MultiIndex
+            Hierarchical type: pd.DataFrame with 3 or more level row MultiIndex
         y_pred :time series in aeon compatible data container format
             Forecasted values to evaluate
             must be of same format as y_true, same indices and columns if indexed
@@ -166,10 +166,10 @@ class BaseForecastingErrorMetric(BaseMetric):
         y_true : time series in aeon compatible data container format
             Ground truth (correct) target values
             y can be in one of the following formats:
-            Series scitype: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
-            Panel scitype: pd.DataFrame with 2-level row MultiIndex,
+            Series type: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
+            Panel type: pd.DataFrame with 2-level row MultiIndex,
                 3D np.ndarray, list of Series pd.DataFrame, or nested pd.DataFrame
-            Hierarchical scitype: pd.DataFrame with 3 or more level row MultiIndex
+            Hierarchical type: pd.DataFrame with 3 or more level row MultiIndex
         y_pred :time series in aeon compatible data container format
             Forecasted values to evaluate
             must be of same format as y_true, same indices and columns if indexed
@@ -229,10 +229,10 @@ class BaseForecastingErrorMetric(BaseMetric):
         y_true : time series in aeon compatible data container format
             Ground truth (correct) target values
             y can be in one of the following formats:
-            Series scitype: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
-            Panel scitype: pd.DataFrame with 2-level row MultiIndex,
+            Series type: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
+            Panel type: pd.DataFrame with 2-level row MultiIndex,
                 3D np.ndarray, list of Series pd.DataFrame, or nested pd.DataFrame
-            Hierarchical scitype: pd.DataFrame with 3 or more level row MultiIndex
+            Hierarchical type: pd.DataFrame with 3 or more level row MultiIndex
         y_pred :time series in aeon compatible data container format
             Forecasted values to evaluate
             must be of same format as y_true, same indices and columns if indexed
@@ -297,10 +297,10 @@ class BaseForecastingErrorMetric(BaseMetric):
         y_true : time series in aeon compatible data container format
             Ground truth (correct) target values
             y can be in one of the following formats:
-            Series scitype: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
-            Panel scitype: pd.DataFrame with 2-level row MultiIndex,
+            Series type: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
+            Panel type: pd.DataFrame with 2-level row MultiIndex,
                 3D np.ndarray, list of Series pd.DataFrame, or nested pd.DataFrame
-            Hierarchical scitype: pd.DataFrame with 3 or more level row MultiIndex
+            Hierarchical type: pd.DataFrame with 3 or more level row MultiIndex
         y_pred :time series in aeon compatible data container format
             Forecasted values to evaluate
             must be of same format as y_true, same indices and columns if indexed
@@ -342,10 +342,10 @@ class BaseForecastingErrorMetric(BaseMetric):
         y_true : time series in aeon compatible data container format
             Ground truth (correct) target values
             y can be in one of the following formats:
-            Series scitype: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
-            Panel scitype: pd.DataFrame with 2-level row MultiIndex,
+            Series type: pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
+            Panel type: pd.DataFrame with 2-level row MultiIndex,
                 3D np.ndarray, list of Series pd.DataFrame, or nested pd.DataFrame
-            Hierarchical scitype: pd.DataFrame with 3 or more level row MultiIndex
+            Hierarchical type: pd.DataFrame with 3 or more level row MultiIndex
         y_pred :time series in aeon compatible data container format
             Forecasted values to evaluate
             must be of same format as y_true, same indices and columns if indexed
@@ -462,21 +462,21 @@ class BaseForecastingErrorMetric(BaseMetric):
         return y_true_orig, y_pred_orig, multioutput, multilevel
 
     def _check_ys(self, y_true, y_pred, multioutput, multilevel, **kwargs):
-        SCITYPES = ["Series", "Panel", "Hierarchical"]
-        INNER_MTYPES = ["pd.DataFrame", "pd-multiindex", "pd_multiindex_hier"]
+        types = ["Series", "Panel", "Hierarchical"]
+        inner_types = ["pd.DataFrame", "pd-multiindex", "pd_multiindex_hier"]
 
         def _coerce_to_df(y, var_name="y"):
             valid, msg, metadata = check_is_scitype(
-                y, scitype=SCITYPES, return_metadata=True, var_name=var_name
+                y, scitype=types, return_metadata=True, var_name=var_name
             )
             if not valid:
                 raise TypeError(msg)
-            y_inner = convert_to(y, to_type=INNER_MTYPES)
+            y_inner = convert_to(y, to_type=inner_types)
 
-            scitype = metadata["scitype"]
+            type = metadata["scitype"]
             ignore_index = multilevel == "uniform_average_time"
-            if scitype in ["Panel", "Hierarchical"] and not ignore_index:
-                y_inner = VectorizedDF(y_inner, is_scitype=scitype)
+            if type in ["Panel", "Hierarchical"] and not ignore_index:
+                y_inner = VectorizedDF(y_inner, is_scitype=type)
             return y_inner
 
         y_true = _coerce_to_df(y_true, var_name="y_true")
diff --git a/aeon/registry/_tags.py b/aeon/registry/_tags.py
index 68d51bb2..806e7d8a 100644
--- a/aeon/registry/_tags.py
+++ b/aeon/registry/_tags.py
@@ -159,25 +159,25 @@ ESTIMATOR_TAG_REGISTER = [
         "which data structure is the internal _fit/_predict able to deal with?",
     ),
     (
-        "scitype:transform-input",
+        "input_data_type",
         "transformer",
         ("list", ["Series", "Panel", "Collection"]),
         "The abstract data type of the transformer input X",
     ),
     (
-        "scitype:transform-output",
+        "output_data_type",
         "transformer",
         ("list", ["Series", "Primitives", "Panel"]),
         "The input abstract data type of the transformer output, the transformed X",
     ),
     (
-        "scitype:instancewise",
+        "instancewise",
         "transformer",
         "bool",
         "Does the transformer transform instances independently?",
     ),
     (
-        "scitype:transform-labels",
+        "transform_labels",
         "transformer",
         ("list", ["None", "Series", "Primitives", "Panel"]),
         "What is the type of y: None (not needed), Primitives, Series, Panel?",
diff --git a/aeon/regression/compose/_pipeline.py b/aeon/regression/compose/_pipeline.py
index 2a2a9b63..f481c160 100644
--- a/aeon/regression/compose/_pipeline.py
+++ b/aeon/regression/compose/_pipeline.py
@@ -460,7 +460,7 @@ class SklearnRegressorPipeline(_HeterogenousMetaEstimator, BaseRegressor):
 
     def _convert_X_to_sklearn(self, X):
         """Convert a Table or Panel X to 2D numpy required by sklearn."""
-        output_type = self.transformers_.get_tag("scitype:transform-output")
+        output_type = self.transformers_.get_tag("output_data_type")
         # if output_type is Primitives, output is Table, convert to 2D numpy array
         if output_type == "Primitives":
             Xt = convert_to(X, to_type="numpy2D", as_scitype="Table")
@@ -469,8 +469,8 @@ class SklearnRegressorPipeline(_HeterogenousMetaEstimator, BaseRegressor):
             Xt = convert_to(X, to_type="numpyflat", as_scitype="Panel")
         else:
             raise TypeError(
-                f"unexpected X output type in {type(self.regressor).__name__}, "
-                f'in tag "scitype:transform-output", found "{output_type}", '
+                f"unexpected X output type "
+                f'in tag "output_data_type", found "{output_type}", '
                 'expected one of "Primitives" or "Series"'
             )
 
diff --git a/aeon/transformations/_delegate.py b/aeon/transformations/_delegate.py
index fecc5644..5848f2b0 100644
--- a/aeon/transformations/_delegate.py
+++ b/aeon/transformations/_delegate.py
@@ -73,7 +73,7 @@ class _DelegatedTransformer(BaseTransformer):
         Returns
         -------
         transformed version of X
-        type depends on type of X and scitype:transform-output tag:
+        type depends on type of X and output_data_type tag:
             |          | `transform`  |                        |
             |   `X`    |  `-output`   |     type of return     |
             |----------|--------------|------------------------|
@@ -107,7 +107,7 @@ class _DelegatedTransformer(BaseTransformer):
         """Use wrapped transformer to inverse transform X and return.
 
         Currently it is assumed that only transformers with tags
-            "scitype:transform-input"="Series", "scitype:transform-output"="Series",
+            "input_data_type"="Series", "output_data_type"="Series",
         have an inverse_transform.
 
 
diff --git a/aeon/transformations/base.py b/aeon/transformations/base.py
index f530dc58..b3c6ec3d 100644
--- a/aeon/transformations/base.py
+++ b/aeon/transformations/base.py
@@ -5,13 +5,13 @@ Base class template for transformers.
 
 Covers all types of transformers.
 Type and behaviour of transformer is determined by the following tags:
-    "scitype:transform-input" tag with values "Primitives" or "Series"
+    "input_data_type" tag with values "Primitives" or "Series"
         this determines expected type of input of transform
         if "Primitives", expected inputs X are pd.DataFrame
         if "Series", expected inputs X are Series or Panel
         Note: placeholder tag for upwards compatibility currently only "Series" is
         supported
-    "scitype:transform-output" tag with values "Primitives", or "Series"
+    "output_data_type" tag with values "Primitives", or "Series"
         this determines type of output of transform
         if "Primitives", output is pd.DataFrame with as many rows as X has instances
         i-th instance of X is transformed into i-th row of output
@@ -19,7 +19,7 @@ Type and behaviour of transformer is determined by the following tags:
         instance of X is transformed into i-th instance of output
         Series are treated as one-instance-Panels
         if Series is input, output is a 1-row pd.DataFrame or a Series
-    "scitype:instancewise" tag which is boolean
+    "instancewise" tag which is boolean
         if True, fit/transform is statistically independent by instance
 
 Class defining methods:
@@ -95,13 +95,13 @@ class BaseTransformer(BaseEstimator):
 
     # default tag values - these typically make the "safest" assumption
     _tags = {
-        "scitype:transform-input": "Series",
-        # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
-        # what scitype is returned: Primitives, Series, Panel
-        "scitype:transform-labels": "None",
+        "input_data_type": "Series",
+        # The type of X: Series, or Panel
+        "output_data_type": "Series",
+        # The type is returned: Primitives, Series, Panel
+        "transform_labels": "None",
         # what is the scitype of y: None (not needed), Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "capability:inverse_transform": False,  # can the transformer inverse transform?
         "univariate-only": False,  # can the transformer handle multivariate X?
         "X_inner_mtype": "pd.DataFrame",  # which mtypes do _fit/_predict support for X?
@@ -419,7 +419,7 @@ class BaseTransformer(BaseEstimator):
         Returns
         -------
         transformed version of X
-        type depends on type of X and scitype:transform-output tag:
+        type depends on type of X and output_data_type tag:
             |          | `transform`  |                        |
             |   `X`    |  `-output`   |     type of return     |
             |__________|______________|________________________|
@@ -491,7 +491,7 @@ class BaseTransformer(BaseEstimator):
         Returns
         -------
         transformed version of X
-        type depends on type of X and scitype:transform-output tag:
+        type depends on type of X and output_data_type tag:
             |   `X`    | `tf-output`  |     type of return     |
             |__________|______________|________________________|
             | `Series` | `Primitives` | `pd.DataFrame` (1-row) |
@@ -543,7 +543,7 @@ class BaseTransformer(BaseEstimator):
         """Inverse transform X and return an inverse transformed version.
 
         Currently it is assumed that only transformers with tags
-            "scitype:transform-input"="Series", "scitype:transform-output"="Series",
+            "input_data_type"="Series", "output_data_type"="Series",
         have an inverse_transform.
 
         State required:
@@ -989,9 +989,9 @@ class BaseTransformer(BaseEstimator):
 
         if inverse:
             # the output of inverse transform is equal to input of transform
-            output_scitype = self.get_tag("scitype:transform-input")
+            output_scitype = self.get_tag("input_data_type")
         else:
-            output_scitype = self.get_tag("scitype:transform-output")
+            output_scitype = self.get_tag("output_data_type")
 
         # if we converted Series to "one-instance-Panel/Hierarchical",
         #   or Panel to "one-instance-Hierarchical", then revert that
@@ -1169,7 +1169,7 @@ class BaseTransformer(BaseEstimator):
         Returns
         -------
         transformed version of X
-        type depends on type of X and scitype:transform-output tag:
+        type depends on type of X and output_data_type tag:
             |          | `transform`  |                        |
             |   `X`    |  `-output`   |     type of return     |
             |__________|______________|________________________|
diff --git a/aeon/transformations/bootstrap/_mbb.py b/aeon/transformations/bootstrap/_mbb.py
index e540800c..9cf6c7c4 100644
--- a/aeon/transformations/bootstrap/_mbb.py
+++ b/aeon/transformations/bootstrap/_mbb.py
@@ -165,12 +165,12 @@ class STLBootstrapTransformer(BaseTransformer):
 
     _tags = {
         # todo: what is the scitype of X: Series, or Panel
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # todo: what scitype is returned: Primitives, Series, Panel
-        "scitype:transform-output": "Panel",
+        "output_data_type": "Panel",
         # todo: what is the scitype of y: None (not needed), Primitives, Series, Panel
-        "scitype:transform-labels": "None",
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "transform_labels": "None",
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.DataFrame",  # which mtypes do _fit/_predict support for X?
         # X_inner_mtype can be Panel mtype even if transform-input is Series, vectorized
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
@@ -479,12 +479,12 @@ class MovingBlockBootstrapTransformer(BaseTransformer):
 
     _tags = {
         # todo: what is the scitype of X: Series, or Panel
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # todo: what scitype is returned: Primitives, Series, Panel
-        "scitype:transform-output": "Panel",
+        "output_data_type": "Panel",
         # todo: what is the scitype of y: None (not needed), Primitives, Series, Panel
-        "scitype:transform-labels": "None",
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "transform_labels": "None",
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.DataFrame",  # which mtypes do _fit/_predict support for X?
         # X_inner_mtype can be Panel mtype even if transform-input is Series, vectorized
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
diff --git a/aeon/transformations/collection/base.py b/aeon/transformations/collection/base.py
index 487b2d86..4b050517 100644
--- a/aeon/transformations/collection/base.py
+++ b/aeon/transformations/collection/base.py
@@ -41,8 +41,8 @@ class BaseCollectionTransformer(
 
     # Relevant tag values inherited from BaseTransformer
     _tags = {
-        "scitype:transform-input": "Panel",
-        "scitype:transform-output": "Panel",
+        "input_data_type": "Panel",
+        "output_data_type": "Panel",
         "fit_is_empty": False,
     }
 
@@ -160,7 +160,7 @@ class BaseCollectionTransformer(
         """Inverse transform X and return an inverse transformed version.
 
         Currently it is assumed that only transformers with tags
-            "scitype:transform-input"="Series", "scitype:transform-output"="Series",
+            "input_data_type"="Series", "output_data_type"="Series",
         have an inverse_transform.
 
         State required:
diff --git a/aeon/transformations/collection/catch22.py b/aeon/transformations/collection/catch22.py
index 9904886c..3505e2e0 100644
--- a/aeon/transformations/collection/catch22.py
+++ b/aeon/transformations/collection/catch22.py
@@ -131,7 +131,7 @@ class Catch22(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "X_inner_mtype": ["np-list", "numpy3D"],
         "capability:unequal_length": True,
         "capability:multivariate": True,
diff --git a/aeon/transformations/collection/convolution_based/_minirocket.py b/aeon/transformations/collection/convolution_based/_minirocket.py
index 1cb31642..039db9a6 100644
--- a/aeon/transformations/collection/convolution_based/_minirocket.py
+++ b/aeon/transformations/collection/convolution_based/_minirocket.py
@@ -58,7 +58,7 @@ class MiniRocket(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
     }
 
     def __init__(
diff --git a/aeon/transformations/collection/convolution_based/_minirocket_multivariate.py b/aeon/transformations/collection/convolution_based/_minirocket_multivariate.py
index e44af8af..7513d002 100644
--- a/aeon/transformations/collection/convolution_based/_minirocket_multivariate.py
+++ b/aeon/transformations/collection/convolution_based/_minirocket_multivariate.py
@@ -59,7 +59,7 @@ class MiniRocketMultivariate(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "capability:multivariate": True,
     }
 
diff --git a/aeon/transformations/collection/convolution_based/_minirocket_multivariate_variable.py b/aeon/transformations/collection/convolution_based/_minirocket_multivariate_variable.py
index d562f8f1..85bc5e52 100644
--- a/aeon/transformations/collection/convolution_based/_minirocket_multivariate_variable.py
+++ b/aeon/transformations/collection/convolution_based/_minirocket_multivariate_variable.py
@@ -82,7 +82,7 @@ class MiniRocketMultivariateVariable(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "capability:multivariate": True,
         "capability:unequal_length": True,
         "X_inner_mtype": "df-list",
diff --git a/aeon/transformations/collection/convolution_based/_multirocket.py b/aeon/transformations/collection/convolution_based/_multirocket.py
index e14759e0..bbcde9dd 100644
--- a/aeon/transformations/collection/convolution_based/_multirocket.py
+++ b/aeon/transformations/collection/convolution_based/_multirocket.py
@@ -72,7 +72,7 @@ class MultiRocket(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
     }
 
     def __init__(
diff --git a/aeon/transformations/collection/convolution_based/_multirocket_multivariate.py b/aeon/transformations/collection/convolution_based/_multirocket_multivariate.py
index 91924858..6512409a 100644
--- a/aeon/transformations/collection/convolution_based/_multirocket_multivariate.py
+++ b/aeon/transformations/collection/convolution_based/_multirocket_multivariate.py
@@ -71,7 +71,7 @@ class MultiRocketMultivariate(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "capability:multivariate": True,
     }
 
diff --git a/aeon/transformations/collection/convolution_based/_rocket.py b/aeon/transformations/collection/convolution_based/_rocket.py
index c8c91561..add46a44 100644
--- a/aeon/transformations/collection/convolution_based/_rocket.py
+++ b/aeon/transformations/collection/convolution_based/_rocket.py
@@ -62,7 +62,7 @@ class Rocket(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "capability:multivariate": True,
     }
 
diff --git a/aeon/transformations/collection/dictionary_based/_sfa.py b/aeon/transformations/collection/dictionary_based/_sfa.py
index 76bf8fb9..de223916 100644
--- a/aeon/transformations/collection/dictionary_based/_sfa.py
+++ b/aeon/transformations/collection/dictionary_based/_sfa.py
@@ -103,7 +103,7 @@ class SFA(BaseCollectionTransformer):
 
     _tags = {
         "univariate-only": True,
-        "scitype:instancewise": False,
+        "instancewise": False,
         "fit_is_empty": False,
         "requires_y": True,
         "y_inner_mtype": "numpy1D",
diff --git a/aeon/transformations/collection/dictionary_based/_sfa_fast.py b/aeon/transformations/collection/dictionary_based/_sfa_fast.py
index 5e7a7666..b7dde0f2 100644
--- a/aeon/transformations/collection/dictionary_based/_sfa_fast.py
+++ b/aeon/transformations/collection/dictionary_based/_sfa_fast.py
@@ -152,7 +152,7 @@ class SFAFast(BaseCollectionTransformer):
 
     _tags = {
         "univariate-only": True,
-        "scitype:instancewise": False,
+        "instancewise": False,
         "fit_is_empty": False,
         "requires_y": True,
         "y_inner_mtype": "numpy1D",
diff --git a/aeon/transformations/collection/dwt.py b/aeon/transformations/collection/dwt.py
index 8b326050..c52ba9a6 100644
--- a/aeon/transformations/collection/dwt.py
+++ b/aeon/transformations/collection/dwt.py
@@ -29,8 +29,8 @@ class DWTTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": False,
+        "output_data_type": "Series",
+        "instancewise": False,
         "X_inner_mtype": "numpy3D",
         "y_inner_mtype": "None",
         "fit_is_empty": True,
diff --git a/aeon/transformations/collection/hog1d.py b/aeon/transformations/collection/hog1d.py
index 67dfa0f8..b6ee518d 100644
--- a/aeon/transformations/collection/hog1d.py
+++ b/aeon/transformations/collection/hog1d.py
@@ -33,8 +33,8 @@ class HOG1DTransformer(BaseTransformer, SplitsTimeSeries):
     """
 
     _tags = {
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": True,
+        "output_data_type": "Series",
+        "instancewise": True,
         "X_inner_mtype": "numpy3D",
         "y_inner_mtype": "None",
         "fit_is_empty": True,
diff --git a/aeon/transformations/collection/interpolate.py b/aeon/transformations/collection/interpolate.py
index fc74fd55..dc595013 100644
--- a/aeon/transformations/collection/interpolate.py
+++ b/aeon/transformations/collection/interpolate.py
@@ -37,8 +37,8 @@ class TSInterpolator(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": False,
+        "output_data_type": "Series",
+        "instancewise": False,
         "X_inner_mtype": ["np-list", "numpy3D"],
         "y_inner_mtype": "None",
         "capability:multivariate": True,
diff --git a/aeon/transformations/collection/matrix_profile.py b/aeon/transformations/collection/matrix_profile.py
index d5b65f15..f2d47b15 100644
--- a/aeon/transformations/collection/matrix_profile.py
+++ b/aeon/transformations/collection/matrix_profile.py
@@ -208,11 +208,11 @@ class MatrixProfile(BaseTransformer):
     _tags = {
         "univariate-only": True,
         "fit_is_empty": True,
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         # what is the scitype of y: None (not needed), Primitives, Series, Panel
-        "scitype:instancewise": False,  # is this an instance-wise transform?
+        "instancewise": False,  # is this an instance-wise transform?
         "X_inner_mtype": "numpy3D",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for X?
     }
diff --git a/aeon/transformations/collection/pad.py b/aeon/transformations/collection/pad.py
index 8d284a55..8aed283d 100644
--- a/aeon/transformations/collection/pad.py
+++ b/aeon/transformations/collection/pad.py
@@ -46,8 +46,8 @@ class PaddingTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": False,
+        "output_data_type": "Series",
+        "instancewise": False,
         "X_inner_mtype": ["np-list", "numpy3D"],
         "y_inner_mtype": "None",
         "fit_is_empty": False,
diff --git a/aeon/transformations/collection/random_intervals.py b/aeon/transformations/collection/random_intervals.py
index 1d3efc63..55be07eb 100644
--- a/aeon/transformations/collection/random_intervals.py
+++ b/aeon/transformations/collection/random_intervals.py
@@ -108,7 +108,7 @@ class RandomIntervals(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "capability:multivariate": True,
         "fit_is_empty": False,
     }
diff --git a/aeon/transformations/collection/reduce.py b/aeon/transformations/collection/reduce.py
index 6d539d3d..8b3455f3 100644
--- a/aeon/transformations/collection/reduce.py
+++ b/aeon/transformations/collection/reduce.py
@@ -27,11 +27,11 @@ class Tabularizer(BaseTransformer):
     _tags = {
         "fit_is_empty": True,
         "univariate-only": False,
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         # what is the scitype of y: None (not needed), Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["nested_univ", "numpy3D"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # and for y?
@@ -99,11 +99,11 @@ class TimeBinner(BaseTransformer):
     _tags = {
         "fit_is_empty": True,
         "univariate-only": False,
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         # what is the scitype of y: None (not needed), Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["nested_univ"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # and for y?
diff --git a/aeon/transformations/collection/segment.py b/aeon/transformations/collection/segment.py
index ec40e404..b0bd5853 100644
--- a/aeon/transformations/collection/segment.py
+++ b/aeon/transformations/collection/segment.py
@@ -26,9 +26,9 @@ class IntervalSegmenter(BaseTransformer):
 
     _tags = {
         "univariate-only": True,
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": True,
+        "input_data_type": "Series",
+        "output_data_type": "Series",
+        "instancewise": True,
         "X_inner_mtype": "numpy3D",
         "y_inner_mtype": "None",
         "fit_is_empty": False,
@@ -390,10 +390,10 @@ class SlidingWindowSegmenter(BaseTransformer):
     _tags = {
         "univariate-only": True,
         "fit_is_empty": True,
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": False,
+        "output_data_type": "Series",
+        "instancewise": False,
         "X_inner_mtype": "numpy3D",
         "y_inner_mtype": "None",
     }
diff --git a/aeon/transformations/collection/shapelet_based/_dilated_shapelet_transform.py b/aeon/transformations/collection/shapelet_based/_dilated_shapelet_transform.py
index 1aca8c71..3ddd5be4 100644
--- a/aeon/transformations/collection/shapelet_based/_dilated_shapelet_transform.py
+++ b/aeon/transformations/collection/shapelet_based/_dilated_shapelet_transform.py
@@ -130,7 +130,7 @@ class RandomDilatedShapeletTransform(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "fit_is_empty": False,
         "univariate-only": False,
         "X_inner_mtype": "numpy3D",
diff --git a/aeon/transformations/collection/shapelet_based/_shapelet_transform.py b/aeon/transformations/collection/shapelet_based/_shapelet_transform.py
index 12961fba..e674aff8 100644
--- a/aeon/transformations/collection/shapelet_based/_shapelet_transform.py
+++ b/aeon/transformations/collection/shapelet_based/_shapelet_transform.py
@@ -138,7 +138,7 @@ class RandomShapeletTransform(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "capability:multivariate": True,
         "y_inner_mtype": "numpy1D",
         "fit_is_empty": False,
diff --git a/aeon/transformations/collection/signature_based/_compute.py b/aeon/transformations/collection/signature_based/_compute.py
index d22463d4..9e0d4b55 100644
--- a/aeon/transformations/collection/signature_based/_compute.py
+++ b/aeon/transformations/collection/signature_based/_compute.py
@@ -26,7 +26,7 @@ class _WindowSignatureTransform(BaseCollectionTransformer):
     # default tag values for "Series-to-Primitives"
     _tags = {
         "fit_is_empty": True,
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "capability:multivariate": True,
         "python_dependencies": "esig",
         "python_version": "<3.11",
diff --git a/aeon/transformations/collection/signature_based/_signature_method.py b/aeon/transformations/collection/signature_based/_signature_method.py
index 2fd0ac86..82faf942 100644
--- a/aeon/transformations/collection/signature_based/_signature_method.py
+++ b/aeon/transformations/collection/signature_based/_signature_method.py
@@ -40,7 +40,7 @@ class SignatureTransformer(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "capability:multivariate": True,
         "fit_is_empty": False,
         "python_dependencies": "esig",
diff --git a/aeon/transformations/collection/slope.py b/aeon/transformations/collection/slope.py
index 73d79e1d..d3487088 100644
--- a/aeon/transformations/collection/slope.py
+++ b/aeon/transformations/collection/slope.py
@@ -35,8 +35,8 @@ class SlopeTransformer(BaseTransformer, SplitsTimeSeries):
     """
 
     _tags = {
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": False,
+        "output_data_type": "Series",
+        "instancewise": False,
         "X_inner_mtype": "numpy3D",
         "y_inner_mtype": "None",
         "fit_is_empty": True,
diff --git a/aeon/transformations/collection/supervised_intervals.py b/aeon/transformations/collection/supervised_intervals.py
index efacea06..e2956ae6 100644
--- a/aeon/transformations/collection/supervised_intervals.py
+++ b/aeon/transformations/collection/supervised_intervals.py
@@ -134,7 +134,7 @@ class SupervisedIntervals(BaseCollectionTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "y_inner_mtype": "numpy1D",
         "capability:multivariate": True,
         "requires_y": True,
diff --git a/aeon/transformations/collection/truncate.py b/aeon/transformations/collection/truncate.py
index a49f0026..34243a1a 100644
--- a/aeon/transformations/collection/truncate.py
+++ b/aeon/transformations/collection/truncate.py
@@ -34,8 +34,8 @@ class TruncationTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": False,
+        "output_data_type": "Series",
+        "instancewise": False,
         "X_inner_mtype": ["np-list", "numpy3D"],
         "y_inner_mtype": "None",
         "fit_is_empty": False,
diff --git a/aeon/transformations/collection/tsfresh.py b/aeon/transformations/collection/tsfresh.py
index 632b9fda..753eedfe 100644
--- a/aeon/transformations/collection/tsfresh.py
+++ b/aeon/transformations/collection/tsfresh.py
@@ -12,7 +12,7 @@ class _TSFreshFeatureExtractor(BaseCollectionTransformer):
     """Base adapter class for tsfresh transformations."""
 
     _tags = {
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         "capability:multivariate": True,
         "fit_is_empty": True,
         "y_inner_mtype": "None",
@@ -436,7 +436,7 @@ class TSFreshRelevantFeatureExtractor(_TSFreshFeatureExtractor):
     """
 
     _tags = {
-        "scitype:instancewise": False,
+        "instancewise": False,
         "requires_y": True,
         "X_inner_mtype": "nested_univ",
         "y_inner_mtype": "pd_Series_Table",
@@ -548,31 +548,6 @@ class TSFreshRelevantFeatureExtractor(_TSFreshFeatureExtractor):
         Returns
         -------
         transformed version of X
-        type depends on type of X and scitype:transform-output tag:
-            |   `X`    | `tf-output`  |     type of return     |
-            |----------|--------------|------------------------|
-            | `Series` | `Primitives` | `pd.DataFrame` (1-row) |
-            | `Panel`  | `Primitives` | `pd.DataFrame`         |
-            | `Series` | `Series`     | `Series`               |
-            | `Panel`  | `Series`     | `Panel`                |
-            | `Series` | `Panel`      | `Panel`                |
-        instances in return correspond to instances in `X`
-        combinations not in the table are currently not supported
-
-        Explicitly, with examples:
-            if `X` is `Series` (e.g., `pd.DataFrame`) and `transform-output` is `Series`
-                then the return is a single `Series` of the same mtype
-                Example: detrending a single series
-            if `X` is `Panel` (e.g., `pd-multiindex`) and `transform-output` is `Series`
-                then the return is `Panel` with same number of instances as `X`
-                    (the transformer is applied to each input Series instance)
-                Example: all series in the panel are detrended individually
-            if `X` is `Series` or `Panel` and `transform-output` is `Primitives`
-                then the return is `pd.DataFrame` with as many rows as instances in `X`
-                Example: i-th row of the return has mean and variance of the i-th series
-            if `X` is `Series` and `transform-output` is `Panel`
-                then the return is a `Panel` object of type `pd-multiindex`
-                Example: i-th instance of the output is the i-th window running over `X`
         """
         # lazy imports to avoid hard dependency
         from tsfresh.transformers.feature_selector import FeatureSelector
diff --git a/aeon/transformations/compose.py b/aeon/transformations/compose.py
index e25d1cec..bc41fc02 100644
--- a/aeon/transformations/compose.py
+++ b/aeon/transformations/compose.py
@@ -188,21 +188,19 @@ class TransformerPipeline(_HeterogenousMetaEstimator, BaseTransformer):
         last_trafo = ests[-1][1]
 
         # input mtype and input type are as of the first estimator
-        self.clone_tags(first_trafo, ["scitype:transform-input"])
+        self.clone_tags(first_trafo, ["input_data_type"])
         # output type is that of last estimator, if no "Primitives" occur in the middle
         # if "Primitives" occur in the middle, then output is set to that too
         # this is in a case where "Series-to-Series" is applied to primitive df
         #   e.g., in a case of pipelining with scikit-learn transformers
-        last_out = last_trafo.get_tag("scitype:transform-output")
-        self._anytagis_then_set(
-            "scitype:transform-output", "Primitives", last_out, ests
-        )
+        last_out = last_trafo.get_tag("output_data_type")
+        self._anytagis_then_set("output_data_type", "Primitives", last_out, ests)
 
         # set property tags based on tags of components
         self._anytag_notnone_set("y_inner_mtype", ests)
-        self._anytag_notnone_set("scitype:transform-labels", ests)
+        self._anytag_notnone_set("transform_labels", ests)
 
-        self._anytagis_then_set("scitype:instancewise", False, True, ests)
+        self._anytagis_then_set("instancewise", False, True, ests)
         self._anytagis_then_set("fit_is_empty", False, True, ests)
         self._anytagis_then_set("transform-returns-same-time-index", False, True, ests)
         self._anytagis_then_set("skip-inverse-transform", False, True, ests)
@@ -465,10 +463,10 @@ class FeatureUnion(_HeterogenousMetaEstimator, BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
-        "scitype:transform-labels": "None",
-        "scitype:instancewise": False,  # depends on components
+        "input_data_type": "Series",
+        "output_data_type": "Series",
+        "transform_labels": "None",
+        "instancewise": False,  # depends on components
         "univariate-only": False,  # depends on components
         "capability:missing_values": False,  # depends on components
         "X_inner_mtype": ["pd.DataFrame", "pd-multiindex", "pd_multiindex_hier"],
@@ -520,9 +518,9 @@ class FeatureUnion(_HeterogenousMetaEstimator, BaseTransformer):
 
         # set property tags based on tags of components
         self._anytag_notnone_set("y_inner_mtype", ests)
-        self._anytag_notnone_set("scitype:transform-labels", ests)
+        self._anytag_notnone_set("transform_labels", ests)
 
-        self._anytagis_then_set("scitype:instancewise", False, True, ests)
+        self._anytagis_then_set("instancewise", False, True, ests)
         self._anytagis_then_set("X-y-must-have-same-index", True, False, ests)
         self._anytagis_then_set("fit_is_empty", False, True, ests)
         self._anytagis_then_set("transform-returns-same-time-index", False, True, ests)
@@ -1076,11 +1074,11 @@ class InvertTransform(_DelegatedTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd.Series"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
@@ -1099,9 +1097,9 @@ class InvertTransform(_DelegatedTransformer):
         # should be all tags, but not fit_is_empty
         #   (_fit should not be skipped)
         tags_to_clone = [
-            "scitype:transform-input",
-            "scitype:transform-output",
-            "scitype:instancewise",
+            "input_data_type",
+            "output_data_type",
+            "instancewise",
             "X_inner_mtype",
             "y_inner_mtype",
             "capability:missing_values",
@@ -1117,11 +1115,11 @@ class InvertTransform(_DelegatedTransformer):
                 "according to capability:inverse_transform tag. "
                 "If the tag was correctly set, this transformer will likely crash"
             )
-        inner_output = transformer.get_tag("scitype:transform-output")
-        if transformer.get_tag("scitype:transform-output") != "Series":
+        inner_output = transformer.get_tag("output_data_type")
+        if transformer.get_tag("output_data_type") != "Series":
             warn(
                 f"transformer output is not Series but {inner_output}, "
-                "according to scitype:transform-output tag. "
+                "according to output_data_type tag. "
                 "The InvertTransform wrapper supports only Series output, therefore"
                 " this transformer will likely crash on input."
             )
@@ -1332,11 +1330,11 @@ class OptionalPassthrough(_DelegatedTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": CORE_MTYPES,
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
@@ -1354,9 +1352,9 @@ class OptionalPassthrough(_DelegatedTransformer):
         # should be all tags, but not fit_is_empty
         #   (_fit should not be skipped)
         tags_to_clone = [
-            "scitype:transform-input",
-            "scitype:transform-output",
-            "scitype:instancewise",
+            "input_data_type",
+            "output_data_type",
+            "instancewise",
             "y_inner_mtype",
             "capability:inverse_transform",
             "capability:missing_values",
@@ -1438,11 +1436,11 @@ class ColumnwiseTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.DataFrame",
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
@@ -1646,11 +1644,11 @@ class ColumnConcatenator(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": False,  # is this an instance-wise transform?
+        "instancewise": False,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd-multiindex", "pd_multiindex_hier"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for X?
diff --git a/aeon/transformations/hierarchical/aggregate.py b/aeon/transformations/hierarchical/aggregate.py
index 4d1ac1e1..cbbf814b 100644
--- a/aeon/transformations/hierarchical/aggregate.py
+++ b/aeon/transformations/hierarchical/aggregate.py
@@ -49,11 +49,11 @@ class Aggregator(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
-        "scitype:transform-labels": "None",
+        "input_data_type": "Series",
+        "output_data_type": "Series",
+        "transform_labels": "None",
         # todo instance wise?
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": [
             "pd.Series",
             "pd.DataFrame",
diff --git a/aeon/transformations/hierarchical/reconcile.py b/aeon/transformations/hierarchical/reconcile.py
index 383a3430..bf9ddda2 100644
--- a/aeon/transformations/hierarchical/reconcile.py
+++ b/aeon/transformations/hierarchical/reconcile.py
@@ -73,10 +73,10 @@ class Reconciler(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
-        "scitype:transform-labels": "None",
-        "scitype:instancewise": False,  # is this an instance-wise transform?
+        "input_data_type": "Series",
+        "output_data_type": "Series",
+        "transform_labels": "None",
+        "instancewise": False,  # is this an instance-wise transform?
         "X_inner_mtype": [
             "pd.DataFrame",
             "pd.Series",
diff --git a/aeon/transformations/series/acf.py b/aeon/transformations/series/acf.py
index abaa7fff..a3e6a03a 100644
--- a/aeon/transformations/series/acf.py
+++ b/aeon/transformations/series/acf.py
@@ -64,11 +64,11 @@ class AutoCorrelationTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.Series",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
         "univariate-only": True,
@@ -196,11 +196,11 @@ class PartialAutoCorrelationTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.Series",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
         "univariate-only": True,
diff --git a/aeon/transformations/series/adapt.py b/aeon/transformations/series/adapt.py
index 95030021..ac5cc881 100644
--- a/aeon/transformations/series/adapt.py
+++ b/aeon/transformations/series/adapt.py
@@ -85,11 +85,11 @@ class TabularToSeriesAdaptor(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "np.ndarray",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
         "univariate-only": False,
@@ -260,11 +260,11 @@ class PandasTransformAdaptor(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.DataFrame",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
         "univariate-only": False,
diff --git a/aeon/transformations/series/augmenter.py b/aeon/transformations/series/augmenter.py
index b1ca1257..35539fe1 100644
--- a/aeon/transformations/series/augmenter.py
+++ b/aeon/transformations/series/augmenter.py
@@ -19,10 +19,10 @@ from aeon.transformations.base import BaseTransformer
 
 class _AugmenterTags:
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
-        "scitype:transform-labels": "None",
-        "scitype:instancewise": True,
+        "input_data_type": "Series",
+        "output_data_type": "Series",
+        "transform_labels": "None",
+        "instancewise": True,
         "capability:missing_values": False,
         "y_inner_mtype": "pd.Series",
         "X_inner_mtype": "pd.DataFrame",
diff --git a/aeon/transformations/series/binning.py b/aeon/transformations/series/binning.py
index 4174abee..8df5a0ff 100644
--- a/aeon/transformations/series/binning.py
+++ b/aeon/transformations/series/binning.py
@@ -55,11 +55,11 @@ class TimeBinAggregate(BaseTransformer):
     _tags = {
         "fit_is_empty": True,
         "univariate-only": False,
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what is the scitype of y: None (not needed), Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # and for y?
diff --git a/aeon/transformations/series/bkfilter.py b/aeon/transformations/series/bkfilter.py
index 23014838..8e284ed9 100644
--- a/aeon/transformations/series/bkfilter.py
+++ b/aeon/transformations/series/bkfilter.py
@@ -65,11 +65,11 @@ class BKFilter(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "univariate-only": False,  # can the transformer handle multivariate X?
         "X_inner_mtype": "np.ndarray",  # which mtypes do _fit/_predict support for X?
         # this can be a Panel mtype even if transform-input is Series, vectorized
diff --git a/aeon/transformations/series/boxcox.py b/aeon/transformations/series/boxcox.py
index d181320c..91363046 100644
--- a/aeon/transformations/series/boxcox.py
+++ b/aeon/transformations/series/boxcox.py
@@ -116,11 +116,11 @@ class BoxCoxTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "np.ndarray",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
         "transform-returns-same-time-index": True,
@@ -247,11 +247,11 @@ class LogTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "np.ndarray",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
         "transform-returns-same-time-index": True,
diff --git a/aeon/transformations/series/clasp.py b/aeon/transformations/series/clasp.py
index 21dfd746..ab93592c 100644
--- a/aeon/transformations/series/clasp.py
+++ b/aeon/transformations/series/clasp.py
@@ -391,11 +391,11 @@ class ClaSPTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "np.ndarray",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
         "univariate-only": True,
diff --git a/aeon/transformations/series/clear_sky.py b/aeon/transformations/series/clear_sky.py
index 30cdfe23..504ccf84 100644
--- a/aeon/transformations/series/clear_sky.py
+++ b/aeon/transformations/series/clear_sky.py
@@ -70,10 +70,10 @@ class ClearSky(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
-        "scitype:transform-labels": "None",
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "input_data_type": "Series",
+        "output_data_type": "Series",
+        "transform_labels": "None",
+        "instancewise": True,  # is this an instance-wise transform?
         "capability:inverse_transform": True,  # can the transformer inverse transform?
         "univariate-only": True,  # can the transformer handle multivariate X?
         "X_inner_mtype": [
diff --git a/aeon/transformations/series/cos.py b/aeon/transformations/series/cos.py
index dc0a00bf..fc4739fe 100644
--- a/aeon/transformations/series/cos.py
+++ b/aeon/transformations/series/cos.py
@@ -27,11 +27,11 @@ class CosineTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "np.ndarray",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
         "univariate-only": False,
diff --git a/aeon/transformations/series/date.py b/aeon/transformations/series/date.py
index 08d4f4ac..3f4c5460 100644
--- a/aeon/transformations/series/date.py
+++ b/aeon/transformations/series/date.py
@@ -109,11 +109,11 @@ class DateTimeFeatures(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": [
             "pd.Series",
             "pd.DataFrame",
diff --git a/aeon/transformations/series/detrend/_deseasonalize.py b/aeon/transformations/series/detrend/_deseasonalize.py
index b2414035..0176c10f 100644
--- a/aeon/transformations/series/detrend/_deseasonalize.py
+++ b/aeon/transformations/series/detrend/_deseasonalize.py
@@ -61,11 +61,11 @@ class Deseasonalizer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.Series",
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
@@ -449,11 +449,11 @@ class STLTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.Series",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "pd.Series",  # which mtypes do _fit/_predict support for y?
         "transform-returns-same-time-index": True,
diff --git a/aeon/transformations/series/detrend/_detrend.py b/aeon/transformations/series/detrend/_detrend.py
index 77198658..b43a1960 100644
--- a/aeon/transformations/series/detrend/_detrend.py
+++ b/aeon/transformations/series/detrend/_detrend.py
@@ -66,11 +66,11 @@ class Detrender(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd-multiindex", "pd_multiindex_hier"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": ["pd.DataFrame", "pd-multiindex", "pd_multiindex_hier"],
diff --git a/aeon/transformations/series/difference.py b/aeon/transformations/series/difference.py
index eb3fe348..00fa7bfb 100644
--- a/aeon/transformations/series/difference.py
+++ b/aeon/transformations/series/difference.py
@@ -216,11 +216,11 @@ class Differencer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd.Series"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
diff --git a/aeon/transformations/series/exponent.py b/aeon/transformations/series/exponent.py
index 6eec7a95..360b6f03 100644
--- a/aeon/transformations/series/exponent.py
+++ b/aeon/transformations/series/exponent.py
@@ -69,11 +69,11 @@ class ExponentTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd.Series"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
diff --git a/aeon/transformations/series/feature_selection.py b/aeon/transformations/series/feature_selection.py
index 15f82b4b..339af372 100644
--- a/aeon/transformations/series/feature_selection.py
+++ b/aeon/transformations/series/feature_selection.py
@@ -69,11 +69,11 @@ class FeatureSelection(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd.Series"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "pd.DataFrame",  # which mtypes do _fit/_predict support for y?
@@ -119,7 +119,7 @@ class FeatureSelection(BaseTransformer):
         self.feature_importances_ = None
 
         if self.method == "none":
-            self.set_tags(**{"scitype:transform-output": "Primitives"})
+            self.set_tags(**{"output_data_type": "Primitives"})
 
         # multivariate X
         if not isinstance(X, pd.Series):
diff --git a/aeon/transformations/series/filter.py b/aeon/transformations/series/filter.py
index e4dc488e..92358473 100644
--- a/aeon/transformations/series/filter.py
+++ b/aeon/transformations/series/filter.py
@@ -35,11 +35,11 @@ class Filter(BaseTransformer):
 
     # default tag values for "Series-to-Series"
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["np.ndarray", "numpy3D"],
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for X?
         "fit_is_empty": True,  # is fit empty and can be skipped? Yes = True
diff --git a/aeon/transformations/series/fourier.py b/aeon/transformations/series/fourier.py
index 9d0da560..04626f4b 100644
--- a/aeon/transformations/series/fourier.py
+++ b/aeon/transformations/series/fourier.py
@@ -69,13 +69,13 @@ class FourierFeatures(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:transform-labels": "None",
+        "transform_labels": "None",
         # what is the scitype of y: None (not needed), Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "capability:inverse_transform": False,  # can the transformer inverse transform?
         "univariate-only": False,  # can the transformer handle multivariate X?
         "X_inner_mtype": "pd.DataFrame",  # which mtypes do _fit/_predict support for X?
diff --git a/aeon/transformations/series/func_transform.py b/aeon/transformations/series/func_transform.py
index e76455f9..0bf178de 100644
--- a/aeon/transformations/series/func_transform.py
+++ b/aeon/transformations/series/func_transform.py
@@ -74,11 +74,11 @@ class FunctionTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd.Series", "np.ndarray"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
diff --git a/aeon/transformations/series/hidalgo.py b/aeon/transformations/series/hidalgo.py
index a20b87cc..2a45a85c 100644
--- a/aeon/transformations/series/hidalgo.py
+++ b/aeon/transformations/series/hidalgo.py
@@ -85,9 +85,9 @@ class Hidalgo(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
         "transform-returns-same-time-index": True,
         "univariate-only": False,
diff --git a/aeon/transformations/series/impute.py b/aeon/transformations/series/impute.py
index 745ce597..7230a67b 100644
--- a/aeon/transformations/series/impute.py
+++ b/aeon/transformations/series/impute.py
@@ -79,11 +79,11 @@ class Imputer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
diff --git a/aeon/transformations/series/kalman_filter.py b/aeon/transformations/series/kalman_filter.py
index 4cdae6cd..22dc070c 100644
--- a/aeon/transformations/series/kalman_filter.py
+++ b/aeon/transformations/series/kalman_filter.py
@@ -442,7 +442,7 @@ class KalmanFilterTransformer(BaseKalmanFilter, BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-labels": "Series",
+        "transform_labels": "Series",
         # what is the scitype of y: None (not needed), Primitives, Series, Panel
         "X_inner_mtype": "np.ndarray",  # which mtypes do _fit/_predict support for X?
         # this can be a Panel mtype even if transform-input is Series, vectorized
@@ -453,7 +453,7 @@ class KalmanFilterTransformer(BaseKalmanFilter, BaseTransformer):
         "capability:missing_values": True,  # can estimator handle missing data?
         "capability:missing_values:removes": False,
         # is transform result always guaranteed to contain no missing values?
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "python_dependencies": ["filterpy", "numpy<1.24.0"],
     }
 
diff --git a/aeon/transformations/series/lag.py b/aeon/transformations/series/lag.py
index a47dffe1..4ec98124 100644
--- a/aeon/transformations/series/lag.py
+++ b/aeon/transformations/series/lag.py
@@ -108,11 +108,11 @@ class Lag(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "capability:inverse_transform": False,  # can the transformer inverse transform?
         "univariate-only": False,  # can the transformer handle multivariate X?
         "X_inner_mtype": "pd.DataFrame",  # which mtypes do _fit/_predict support for X?
@@ -408,11 +408,11 @@ class ReducerTransform(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "capability:inverse_transform": False,  # can the transformer inverse transform?
         "univariate-only": False,  # can the transformer handle multivariate X?
         "X_inner_mtype": "pd.DataFrame",  # which mtypes do _fit/_predict support for X?
diff --git a/aeon/transformations/series/matrix_profile.py b/aeon/transformations/series/matrix_profile.py
index dfcba80d..8ac4e8f9 100644
--- a/aeon/transformations/series/matrix_profile.py
+++ b/aeon/transformations/series/matrix_profile.py
@@ -37,11 +37,11 @@ class MatrixProfileTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["np.ndarray"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?,
diff --git a/aeon/transformations/series/outlier_detection.py b/aeon/transformations/series/outlier_detection.py
index 9bd7d57e..0ab97ef7 100644
--- a/aeon/transformations/series/outlier_detection.py
+++ b/aeon/transformations/series/outlier_detection.py
@@ -50,11 +50,11 @@ class HampelFilter(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd.Series"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
diff --git a/aeon/transformations/series/pca.py b/aeon/transformations/series/pca.py
index 3ae6943d..8b14b760 100644
--- a/aeon/transformations/series/pca.py
+++ b/aeon/transformations/series/pca.py
@@ -103,11 +103,11 @@ class PCATransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": False,  # is this an instance-wise transform?
+        "instancewise": False,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.DataFrame",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for X?
         "univariate-only": False,
diff --git a/aeon/transformations/series/scaledlogit.py b/aeon/transformations/series/scaledlogit.py
index 47328b98..e2ea1a62 100644
--- a/aeon/transformations/series/scaledlogit.py
+++ b/aeon/transformations/series/scaledlogit.py
@@ -89,11 +89,11 @@ class ScaledLogitTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "np.ndarray",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
         "transform-returns-same-time-index": True,
diff --git a/aeon/transformations/series/subset.py b/aeon/transformations/series/subset.py
index ba52d14a..4ccce394 100644
--- a/aeon/transformations/series/subset.py
+++ b/aeon/transformations/series/subset.py
@@ -36,11 +36,11 @@ class IndexSubset(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd.Series"],
         "y_inner_mtype": ["pd.DataFrame", "pd.Series"],
         "transform-returns-same-time-index": False,
@@ -149,11 +149,11 @@ class ColumnSelect(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "pd.DataFrame",
         "y_inner_mtype": "None",
         "transform-returns-same-time-index": True,
diff --git a/aeon/transformations/series/summarize.py b/aeon/transformations/series/summarize.py
index 653a187d..e6ab3069 100644
--- a/aeon/transformations/series/summarize.py
+++ b/aeon/transformations/series/summarize.py
@@ -177,11 +177,11 @@ class WindowSummarizer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": True,
+        "input_data_type": "Series",
+        "output_data_type": "Series",
+        "instancewise": True,
         "capability:inverse_transform": False,
-        "scitype:transform-labels": False,
+        "transform_labels": False,
         "X_inner_mtype": [
             "pd-multiindex",
             "pd.DataFrame",
@@ -631,11 +631,11 @@ class SummaryTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd.Series"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for X?
@@ -750,8 +750,8 @@ class PlateauFinder(BaseTransformer):
     _tags = {
         "fit_is_empty": True,
         "univariate-only": True,
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": False,
+        "output_data_type": "Series",
+        "instancewise": False,
         "X_inner_mtype": "numpy3D",
         "y_inner_mtype": "None",
     }
@@ -840,11 +840,11 @@ class FittedParamExtractor(BaseTransformer):
     _tags = {
         "fit_is_empty": True,
         "univariate-only": True,
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Primitives",
+        "output_data_type": "Primitives",
         # what is the scitype of y: None (not needed), Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": "numpy3D",  # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
     }
diff --git a/aeon/transformations/series/theta.py b/aeon/transformations/series/theta.py
index ee172b48..0d048a73 100644
--- a/aeon/transformations/series/theta.py
+++ b/aeon/transformations/series/theta.py
@@ -58,11 +58,11 @@ class ThetaLinesTransformer(BaseTransformer):
     """
 
     _tags = {
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:instancewise": True,  # is this an instance-wise transform?
+        "instancewise": True,  # is this an instance-wise transform?
         "X_inner_mtype": ["pd.DataFrame", "pd.Series"],
         # which mtypes do _fit/_predict support for X?
         "y_inner_mtype": "None",  # which mtypes do _fit/_predict support for y?
diff --git a/aeon/transformations/series/time_since.py b/aeon/transformations/series/time_since.py
index 8dec0e16..ebe4e720 100644
--- a/aeon/transformations/series/time_since.py
+++ b/aeon/transformations/series/time_since.py
@@ -71,11 +71,11 @@ class TimeSince(BaseTransformer):
 
     _tags = {
         # what is the scitype of X: Series, or Panel
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # what scitype is returned: Primitives, Series, Panel
-        "scitype:transform-output": "Series",
-        "scitype:instancewise": True,  # is this an instance-wise transform?
-        "scitype:transform-labels": "None",
+        "output_data_type": "Series",
+        "instancewise": True,  # is this an instance-wise transform?
+        "transform_labels": "None",
         "X_inner_mtype": ["pd.DataFrame", "pd-multiindex", "pd_multiindex_hier"],
         "y_inner_mtype": "None",
         "univariate-only": False,
diff --git a/docs/developer_guide/add_estimators.rst b/docs/developer_guide/add_estimators.rst
index 5d3e3262..a20110d3 100644
--- a/docs/developer_guide/add_estimators.rst
+++ b/docs/developer_guide/add_estimators.rst
@@ -26,30 +26,16 @@ What is my learning task?
 -------------------------
 
 ``aeon`` is structured along modules encompassing specific learning tasks,
-e.g., forecasting or time series classification.
-For brevity, we define an estimator's scientific type or "scitype" by the formal learning task that it solves.
-For example, the scitype of an estimator that solves the forecasting task is "forecaster".
-The scitype of an estimator that solves the time series classification task is "time series classifier".
+e.g., forecasting or time series classification, with a class structure to reflect that.
+We tag each estimator with a type associated with the relevant base classifier. For
+example, the type of an estimator that extends BaseForecaster is "forecaster" and the
+type of an estimator that solves the time series classification task is "classifier".
 
-Estimators for a given scitype should be located in the respective module.
-The estimator scitypes also map onto the different extension templates found in
+Estimators for a given task are located in the respective module.
+The estimator types also map onto the different extension templates found in
 the `extension_templates <https://github.com/aeon-toolkit/aeon/tree/main/extension_templates>`__
 directory of ``aeon``.
 
-Usually, the scitype of a given estimator is directly determined by what the estimator does.
-This is also, often, explicitly signposted in publications related to the estimator.
-For instance, most textbooks mention ARIMA in the context of forecasting, so in that hypothetical situation
-it makeas sense to consider the "forecaster" template.
-Then, inspect the template and check whether the methods of the class map clearly onto routines of the estimator.
-If not, another template might be more appropriate.
-
-The most common point of confusion here is between transformers and other estimator types,
-since transformers are often used as parts of algorithms of other type.
-
-If unsure, feel free to post your question on one of ``aeon``'s social channels.
-Don't panic - it is not uncommon that academic publications are not clear about the type of an estimator,
-and correct categorization may be difficult even to experts.
-
 
 What are ``aeon`` extension templates?
 ----------------------------------------
@@ -57,11 +43,13 @@ What are ``aeon`` extension templates?
 Extension templates are convenient "fill-in" templates for implementers of new estimators.
 They fit into ``aeon``'s unified interface as follows:
 
-*   for each scitype, there is a public user interface, defined by the respective base class.
+*   for each module, there is a public user interface, defined by the respective base
+class.
     For instance, ``BaseForecaster`` defines the ``fit`` and ``predict`` interfaces for forecasters.
     All forecasters will implement ``fit`` and ``predict`` the same way, by inheritance from ``BaseForecaster``.
     The public interface follows the "strategy" object orientation pattern.
-*   for each scitype, there is a private extender interface, defined by the extension contract in the extension template.
+*   for each type, there is a private extender interface, defined by the extension
+contract in the extension template.
     For instance, the ``forecaster.py`` extension template for forecasters explains what to fill in for a concrete forecaster
     inheriting from ``BaseForecaster``. In most extension templates, users should implement private methods ("inner" methods),
     e.g., ``_fit`` and ``_predict`` for forecasters. Boilerplate code rests within the public part of the interface, in ``fit`` and ``predict``.
diff --git a/examples/transformations/transformations.ipynb b/examples/transformations/transformations.ipynb
index e40afef6..c59b9125 100644
--- a/examples/transformations/transformations.ipynb
+++ b/examples/transformations/transformations.ipynb
@@ -20,26 +20,6 @@
     "and implicitly converted, or whether only a singular input type (i.e. collections) is accepted."
    ]
   },
-  {
-   "cell_type": "markdown",
-   "source": [
-    "This notebook provides an overview of the standard use cases for transformers. More\n",
-    "detail on specific transformers can be found in the associated transformer notebooks\n",
-    "\n",
-    "- [Catch 22 feature extraction](./catch22.ipynb)\n",
-    "- [Elbow Class Pairwise channel selection](./channel_selection.ipynb)\n",
-    "- [TSFresh feature extraction](./feature_extraction_with_tsfresh.ipynb)\n",
-    "- [Interpolation](./interpolation.ipynb)\n",
-    "- [ROCKET transformer](./rocket.ipynb)\n",
-    "- [MINIROCKET transformer](./minirocket.ipynb)\n",
-    "- [Plateau finding](./plateau_finder.ipynb)\n",
-    "- [Signature transformer](./signature_method.ipynb)\n",
-    "- [Theta transformer](./theta_transform.ipynb)"
-   ],
-   "metadata": {
-    "collapsed": false
-   }
-  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -341,7 +321,7 @@
     "    \"transformer\",\n",
     "    exclude_estimator_types=\"collection-transformer\",\n",
     "    filter_tags={\n",
-    "        \"scitype:transform-output\": [\"Series\", \"Panel\"],\n",
+    "        \"output_data_type\": [\"Series\", \"Panel\"],\n",
     "    },\n",
     "    as_dataframe=True,\n",
     ")"
@@ -373,7 +353,7 @@
     "    \"transformer\",\n",
     "    exclude_estimator_types=\"collection-transformer\",\n",
     "    filter_tags={\n",
-    "        \"scitype:transform-output\": \"Primitives\",\n",
+    "        \"output_data_type\": \"Primitives\",\n",
     "    },\n",
     "    as_dataframe=True,\n",
     ")"
diff --git a/extension_templates/transformer.py b/extension_templates/transformer.py
index 5f5add70..ebea7845 100644
--- a/extension_templates/transformer.py
+++ b/extension_templates/transformer.py
@@ -74,10 +74,10 @@ class MyTransformer(BaseTransformer):
     #  tags are inherited from parent class if they are not set
     #
     # todo: define the transformer scitype by setting the tags
-    #   scitype:transform-input - the expected input scitype of X
-    #   scitype:transform-output - the output scitype that transform produces
-    #   scitype:transform-labels - whether y is used and if yes which scitype
-    #   scitype:instancewise - whether transform uses all samples or acts by instance
+    #   input_data_type: - the expected input type of X
+    #   output_data_type - the output type that transform produces
+    #   transform_labels - whether y is used and if yes which type
+    #   instancewise - whether transform uses all samples or acts by instance
     #
     # todo: define internal types for X, y in _fit/_transform by setting the tags
     #   X_inner_mtype - the internal mtype used for X in _fit and _transform
@@ -85,9 +85,9 @@ class MyTransformer(BaseTransformer):
     #   setting this guarantees that X, y passed to _fit, _transform are of above types
     #   for possible mtypes see datatypes.MTYPE_REGISTER, or the datatypes tutorial
     #
-    #  when scitype:transform-input is set to Panel:
+    #  when input_data_type is set to Panel:
     #   X_inner_mtype must be changed to one or a list of aeon Panel mtypes
-    #  when scitype:transform-labels is set to Series or Panel:
+    #  when transform_labels is set to Series or Panel:
     #   y_inner_mtype must be changed to one or a list of compatible aeon mtypes
     #  the other tags are "safe defaults" which can usually be left as-is
     _tags = {
@@ -98,29 +98,29 @@ class MyTransformer(BaseTransformer):
         # behavioural tags: transformer type
         # ----------------------------------
         #
-        # scitype:transform-input, scitype:transform-output, scitype:transform-labels
-        # control the input/output type of transform, in terms of scitype
+        # input_data_type, output_data_type, transform_labels
+        # control the input/output type of transform
         #
-        # scitype:transform-input, scitype:transform-output should be the
-        # simplest scitype that describes the mapping, taking into account vectorization
+        # input_data_type, output_data_type, should be the
+        # simplest type that describes the mapping, taking into account vectorization
         # a transform that produces Series when given Series, Panel when given Panel
         #   should have both transform-input and transform-output as "Series"
         # a transform that produces a tabular DataFrame (Table)
         #   when given Series or Panel should have transform-input "Series"
         #       and transform-output as "Primitives"
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # valid values: "Series", "Panel"
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # valid values: "Series", "Panel", "Primitives"
         #
-        # scitype:instancewise = is fit_transform an instance-wise operation?
+        # instancewise = is fit_transform an instance-wise operation?
         # instance-wise = only values of a given series instance are used to transform
         #   that instance. Example: Fourier transform; non-example: series PCA
-        "scitype:instancewise": True,
+        "instancewise": True,
         #
-        # scitype:transform-labels types the y used in transform
+        # transform_labels types the y used in transform
         #   if y is not used in transform, this should be "None"
-        "scitype:transform-labels": "None",
+        "transform_labels": "None",
         # valid values: "None" (not needed), "Primitives", "Series", "Panel"
         #
         #
@@ -208,7 +208,7 @@ class MyTransformer(BaseTransformer):
         #   is transform result always guaranteed to be equal length (and series)?
         "capability:unequal_length:removes": False,
         # valid values: boolean True (yes), False (no)
-        # applicable only if scitype:transform-output is not "Primitives"
+        # applicable only if output_data_type is not "Primitives"
         # used for search index and validity checking, does not raise direct exception
         #
         # capability:missing_values = can the transformer handle missing data
diff --git a/extension_templates/transformer_simple.py b/extension_templates/transformer_simple.py
index 79421bfa..f0c5d1f5 100644
--- a/extension_templates/transformer_simple.py
+++ b/extension_templates/transformer_simple.py
@@ -65,11 +65,11 @@ class MyTransformer(BaseTransformer):
     # todo: fill out estimator tags here
     #  tags are inherited from parent class if they are not set
     #
-    # todo: define the transformer scitype by setting the tags
-    #   scitype:transform-input - the expected input scitype of X
-    #   scitype:transform-output - the output scitype that transform produces
-    #   scitype:transform-labels - whether y is used and if yes which scitype
-    #   scitype:instancewise - whether transform uses all samples or acts by instance
+    # todo: define the transformer type by setting the tags
+    #   input_data_type - the expected input type of X
+    #   output_data_type - the output type that transform produces
+    #   transform_labels - whether y is used and if yes which type
+    #   instancewise - whether transform uses all samples or acts by instance
     #
     # todo: define internal types for X, y in _fit/_transform by setting the tags
     #   X_inner_mtype - the internal mtype used for X in _fit and _transform
@@ -77,9 +77,9 @@ class MyTransformer(BaseTransformer):
     #   setting this guarantees that X, y passed to _fit, _transform are of above types
     #   for possible mtypes see datatypes.MTYPE_REGISTER, or the datatypes tutorial
     #
-    #  when scitype:transform-input is set to Panel:
+    #  when input_data_type is set to Panel:
     #   X_inner_mtype must be changed to one or a list of aeon Panel mtypes
-    #  when scitype:transform-labels is set to Series or Panel:
+    #  when transform_labels is set to Series or Panel:
     #   y_inner_mtype must be changed to one or a list of compatible aeon mtypes
     #  the other tags are "safe defaults" which can usually be left as-is
     _tags = {
@@ -90,29 +90,29 @@ class MyTransformer(BaseTransformer):
         # behavioural tags: transformer type
         # ----------------------------------
         #
-        # scitype:transform-input, scitype:transform-output, scitype:transform-labels
-        # control the input/output type of transform, in terms of scitype
+        # output_data_type, input_data_type, transform_labels
+        # control the input/output type of transform
         #
-        # scitype:transform-input, scitype:transform-output should be the
-        # simplest scitype that describes the mapping, taking into account vectorization
+        # input_data_type, output_data_type should be the
+        # simplest type that describes the mapping, taking into account vectorization
         # a transform that produces Series when given Series, Panel when given Panel
         #   should have both transform-input and transform-output as "Series"
         # a transform that produces a tabular DataFrame (Table)
         #   when given Series or Panel should have transform-input "Series"
         #       and transform-output as "Primitives"
-        "scitype:transform-input": "Series",
+        "input_data_type": "Series",
         # valid values: "Series", "Panel"
-        "scitype:transform-output": "Series",
+        "output_data_type": "Series",
         # valid values: "Series", "Panel", "Primitives"
         #
-        # scitype:instancewise = is fit_transform an instance-wise operation?
+        # instancewise = is fit_transform an instance-wise operation?
         # instance-wise = only values of a given series instance are used to transform
         #   that instance. Example: Fourier transform; non-example: series PCA
-        "scitype:instancewise": True,
+        "instancewise": True,
         #
-        # scitype:transform-labels types the y used in transform
+        # transform_labels types the y used in transform
         #   if y is not used in transform, this should be "None"
-        "scitype:transform-labels": "None",
+        "transform_labels": "None",
         # valid values: "None" (not needed), "Primitives", "Series", "Panel"
         #
         #
@@ -125,12 +125,12 @@ class MyTransformer(BaseTransformer):
         "y_inner_mtype": "None",
         # valid values: str and list of str
         # if str, must be a valid mtype str, in aeon.datatypes.MTYPE_REGISTER
-        #   of scitype Series, Panel (panel data) or Hierarchical (hierarchical series)
-        #   y_inner_mtype can also be of scitype Table (one row/instance per series)
+        #   of type Series, Panel (panel data) or Hierarchical (hierarchical series)
+        #   y_inner_mtype can also be of type Table (one row/instance per series)
         #   in that case, all inputs are converted to that one type
         # if list of str, must be a list of valid str specifiers
         #   in that case, X/y are passed through without conversion if on the list
-        #   if not on the list, converted to the first entry of the same scitype
+        #   if not on the list, converted to the first entry of the same type
         #
         # univariate-only controls whether internal X can be univariate/multivariate
         # if True (only univariate), always applies vectorization over variables
@@ -253,7 +253,7 @@ class MyTransformer(BaseTransformer):
         # if transform-output is "Panel":
         #  return a multi-indexed pd.DataFrame of Panel mtype pd_multiindex
         #
-        # todo: add the return mtype/scitype to the docstring, e.g.,
+        # todo: add the return type to the docstring, e.g.,
         #  Returns
         #  -------
         #  X_transformed : Series of mtype pd.DataFrame


Test patch:
diff --git a/aeon/transformations/tests/test_base.py b/aeon/transformations/tests/test_base.py
index a4ad95f6..4702ccf9 100644
--- a/aeon/transformations/tests/test_base.py
+++ b/aeon/transformations/tests/test_base.py
@@ -46,8 +46,8 @@ def inner_X_scitypes(est):
 
 class _DummyOne(BaseTransformer):
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
+        "input_data_type": "Series",
+        "output_data_type": "Series",
         "X_inner_mtype": "numpy3D",
         "fit_is_empty": False,
     }
@@ -63,8 +63,8 @@ def test_series_in_series_out_not_supported_but_panel():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = False
         "X_inner_mtype" does not support "Series" but does support "Panel"
             i.e., none of the mtypes in the list is "Series" but some are "Panel"
@@ -77,8 +77,8 @@ def test_series_in_series_out_not_supported_but_panel():
     assert "Panel" in inner_X_scitypes(est)
     assert "Series" not in inner_X_scitypes(est)
     assert not est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     scenario = TransformerFitTransformSeriesUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
 
@@ -90,8 +90,8 @@ def test_panel_in_panel_out_supported():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = False
         "X_inner_mtype" supports "Panel"
 
@@ -102,8 +102,8 @@ def test_panel_in_panel_out_supported():
     est = cls.create_test_instance()
     assert "Panel" in inner_X_scitypes(est)
     assert not est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     scenario = TransformerFitTransformPanelUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Panel", return_metadata=True)
@@ -112,8 +112,8 @@ def test_panel_in_panel_out_supported():
 
 class _DummyTwo(BaseTransformer):
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
+        "input_data_type": "Series",
+        "output_data_type": "Series",
         "X_inner_mtype": "np.ndarray",
         "univariate-only": True,
         "fit_is_empty": False,
@@ -127,8 +127,8 @@ def test_series_in_series_out_supported():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = False
         "X_inner_mtype" supports "Series
 
@@ -139,8 +139,8 @@ def test_series_in_series_out_supported():
     est = cls.create_test_instance()
     assert "Series" in inner_X_scitypes(est)
     assert not est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     scenario = TransformerFitTransformSeriesUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Series", return_metadata=True)
@@ -151,8 +151,8 @@ def test_panel_in_panel_out_not_supported_but_series():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = False
         "X_inner_mtype" supports "Series" but not "Panel" and not "Hierarchical"
 
@@ -165,8 +165,8 @@ def test_panel_in_panel_out_not_supported_but_series():
     assert "Panel" not in inner_X_scitypes(est)
     assert "Hierarchical" not in inner_X_scitypes(est)
     assert not est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     scenario = TransformerFitTransformPanelUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Panel", return_metadata=True)
@@ -180,8 +180,8 @@ def test_vectorization_multivariate_no_row_vectorization_empty_fit():
 
     Setting: transformer has tags
         "univariate-only" = True
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = True
         "X_inner_mtype" supports "Series"
 
@@ -193,8 +193,8 @@ def test_vectorization_multivariate_no_row_vectorization_empty_fit():
     est = FitInTransform(cls.create_test_instance())
     assert "Series" in inner_X_scitypes(est)
     assert est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     assert est.get_tag("univariate-only")
     scenario = TransformerFitTransformSeriesMultivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
@@ -209,8 +209,8 @@ def test_hierarchical_in_hierarchical_out_not_supported_but_series():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = False
         "X_inner_mtype" supports "Series" but not "Panel" and not "Hierarchical"
 
@@ -223,8 +223,8 @@ def test_hierarchical_in_hierarchical_out_not_supported_but_series():
     assert "Panel" not in inner_X_scitypes(est)
     assert "Hierarchical" not in inner_X_scitypes(est)
     assert not est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     scenario = TransformerFitTransformHierarchicalUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Hierarchical", return_metadata=True)
@@ -240,8 +240,8 @@ def test_vectorization_multivariate_and_hierarchical():
 
     Setting: transformer has tags
         "univariate-only" = True
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = False
         "X_inner_mtype" supports "Series" but not "Panel" and not "Hierarchical
 
@@ -254,8 +254,8 @@ def test_vectorization_multivariate_and_hierarchical():
     assert "Panel" not in inner_X_scitypes(est)
     assert "Hierarchical" not in inner_X_scitypes(est)
     assert not est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     assert est.get_tag("univariate-only")
     scenario = TransformerFitTransformHierarchicalMultivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
@@ -273,8 +273,8 @@ def test_vectorization_multivariate_and_hierarchical_empty_fit():
 
     Setting: transformer has tags
         "univariate-only" = True
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = True
         "X_inner_mtype" supports "Series" but not "Panel" and not "Hierarchical
 
@@ -287,8 +287,8 @@ def test_vectorization_multivariate_and_hierarchical_empty_fit():
     assert "Panel" not in inner_X_scitypes(est)
     assert "Hierarchical" not in inner_X_scitypes(est)
     assert est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     assert est.get_tag("univariate-only")
     scenario = TransformerFitTransformHierarchicalMultivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
@@ -301,8 +301,8 @@ def test_vectorization_multivariate_and_hierarchical_empty_fit():
 
 class _DummyThree(BaseTransformer):
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Series",
+        "input_data_type": "Series",
+        "output_data_type": "Series",
         "X_inner_mtype": "np.ndarray",  # which mtypes do _fit/_predict support for X?
         "fit_is_empty": True,
     }
@@ -315,8 +315,8 @@ def test_series_in_series_out_supported_fit_in_transform():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = True
         "X_inner_mtype" supports "Series"
 
@@ -327,8 +327,8 @@ def test_series_in_series_out_supported_fit_in_transform():
     est = cls.create_test_instance()
     assert "Series" in inner_X_scitypes(est)
     assert est.get_class_tag("fit_is_empty")
-    assert est.get_class_tag("scitype:transform-input") == "Series"
-    assert est.get_class_tag("scitype:transform-output") == "Series"
+    assert est.get_class_tag("input_data_type") == "Series"
+    assert est.get_class_tag("output_data_type") == "Series"
     scenario = TransformerFitTransformSeriesUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Series", return_metadata=True)
@@ -339,8 +339,8 @@ def test_hierarchical_in_hierarchical_out_not_supported_but_series_fit_in_transf
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = True
         "X_inner_mtype" supports "Series" but not "Panel" and not "Hierarchical"
 
@@ -353,8 +353,8 @@ def test_hierarchical_in_hierarchical_out_not_supported_but_series_fit_in_transf
     assert "Panel" not in inner_X_scitypes(est)
     assert "Hierarchical" not in inner_X_scitypes(est)
     assert est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     scenario = TransformerFitTransformHierarchicalUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Hierarchical", return_metadata=True)
@@ -365,8 +365,8 @@ def test_hierarchical_in_hierarchical_out_not_supported_but_series_fit_in_transf
 
 class _DummyFour(BaseTransformer):
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Primitives",
+        "input_data_type": "Series",
+        "output_data_type": "Primitives",
         "X_inner_mtype": ["pd.DataFrame"],
         "y_inner_mtype": "None",
         "fit_is_empty": True,
@@ -380,8 +380,8 @@ def test_series_in_primitives_out_supported_fit_in_transform():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Primitives"
+        "input_data_type" = "Series"
+        "output_data_type" = "Primitives"
         "fit_is_empty" = True
         "X_inner_mtype" supports "Series"
 
@@ -392,8 +392,8 @@ def test_series_in_primitives_out_supported_fit_in_transform():
     est = cls.create_test_instance()
     assert "Series" in inner_X_scitypes(est)
     assert est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Primitives"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Primitives"
     scenario = TransformerFitTransformSeriesUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Table", return_metadata=True)
@@ -406,8 +406,8 @@ def test_panel_in_primitives_out_not_supported_fit_in_transform():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Primitives"
+        "input_data_type" = "Series"
+        "output_data_type" = "Primitives"
         "fit_is_empty" = True
         "X_inner_mtype" does not support "Panel", but does supports "Series"
 
@@ -420,8 +420,8 @@ def test_panel_in_primitives_out_not_supported_fit_in_transform():
     assert "Panel" not in inner_X_scitypes(est)
     assert "Hierarchical" not in inner_X_scitypes(est)
     assert est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Primitives"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Primitives"
     scenario = TransformerFitTransformPanelUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Table", return_metadata=True)
@@ -459,8 +459,8 @@ def test_vectorize_reconstruct_correct_hierarchy():
 
 class _DummyFive(BaseTransformer):
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Primitives",
+        "input_data_type": "Series",
+        "output_data_type": "Primitives",
         "X_inner_mtype": ["numpy3D"],
         "fit_is_empty": True,
     }
@@ -473,8 +473,8 @@ def test_series_in_primitives_out_not_supported_fit_in_transform():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Primitives"
+        "input_data_type" = "Series"
+        "output_data_type" = "Primitives"
         "fit_is_empty" = True
         "X_inner_mtype" supports "Panel" but does not support "Series"
 
@@ -486,8 +486,8 @@ def test_series_in_primitives_out_not_supported_fit_in_transform():
     assert "Panel" in inner_X_scitypes(est)
     assert "Series" not in inner_X_scitypes(est)
     assert est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Primitives"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Primitives"
     scenario = TransformerFitTransformSeriesUnivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Table", return_metadata=True)
@@ -498,8 +498,8 @@ def test_series_in_primitives_out_not_supported_fit_in_transform():
 
 class _DummySix(BaseTransformer):
     _tags = {
-        "scitype:transform-input": "Series",
-        "scitype:transform-output": "Primitives",
+        "input_data_type": "Series",
+        "output_data_type": "Primitives",
         "X_inner_mtype": ["numpy3D"],
         "fit_is_empty": False,
         "requires_y": True,
@@ -513,8 +513,8 @@ def test_panel_in_primitives_out_supported_with_y_in_fit_but_not_transform():
     """Test that fit/transform runs and returns the correct output type.
 
     Setting: transformer has tags
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Primitives"
+        "input_data_type" = "Series"
+        "output_data_type" = "Primitives"
         "fit_is_empty" = False
         "requires_y" = True
         "X_inner_mtype" supports "Panel"
@@ -527,8 +527,8 @@ def test_panel_in_primitives_out_supported_with_y_in_fit_but_not_transform():
     assert "Panel" in inner_X_scitypes(est)
     assert not est.get_tag("fit_is_empty")
     assert est.get_tag("requires_y")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Primitives"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Primitives"
     scenario = TransformerFitTransformPanelUnivariateWithClassYOnlyFit()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
     valid, _, _ = check_is_scitype(Xt, scitype="Table", return_metadata=True)
@@ -544,8 +544,8 @@ def test_vectorization_multivariate_no_row_vectorization():
 
     Setting: transformer has tags
         "univariate-only" = True
-        "scitype:transform-input" = "Series"
-        "scitype:transform-output" = "Series"
+        "input_data_type" = "Series"
+        "output_data_type" = "Series"
         "fit_is_empty" = False
         "X_inner_mtype" supports "Series"
 
@@ -556,8 +556,8 @@ def test_vectorization_multivariate_no_row_vectorization():
     est = cls.create_test_instance()
     assert "Series" in inner_X_scitypes(est)
     assert not est.get_tag("fit_is_empty")
-    assert est.get_tag("scitype:transform-input") == "Series"
-    assert est.get_tag("scitype:transform-output") == "Series"
+    assert est.get_tag("input_data_type") == "Series"
+    assert est.get_tag("output_data_type") == "Series"
     assert est.get_tag("univariate-only")
     scenario = TransformerFitTransformSeriesMultivariate()
     Xt = scenario.run(est, method_sequence=["fit", "transform"])
diff --git a/aeon/transformations/tests/test_compose.py b/aeon/transformations/tests/test_compose.py
index 8ffbd446..c746b7e8 100644
--- a/aeon/transformations/tests/test_compose.py
+++ b/aeon/transformations/tests/test_compose.py
@@ -153,7 +153,7 @@ def test_featureunion_transform_cols():
 def test_sklearn_after_primitives():
     """Test that sklearn transformer after primitives is correctly applied."""
     t = SummaryTransformer() * StandardScaler()
-    assert t.get_tag("scitype:transform-output") == "Primitives"
+    assert t.get_tag("output_data_type") == "Primitives"
 
     X = get_examples("pd-multiindex")[0]
     X_out = t.fit_transform(X)
diff --git a/aeon/utils/_testing/scenarios_transformers.py b/aeon/utils/_testing/scenarios_transformers.py
index 2a1a21fb..1230c1ff 100644
--- a/aeon/utils/_testing/scenarios_transformers.py
+++ b/aeon/utils/_testing/scenarios_transformers.py
@@ -134,8 +134,8 @@ class TransformerTestScenario(TestScenario, BaseObject):
 
             X_scitype = self.get_tag("X_scitype")
 
-            X_out_scitype = get_tag(obj, "scitype:transform-output")
-            X_panel = get_tag(obj, "scitype:instancewise")
+            X_out_scitype = get_tag(obj, "output_data_type")
+            X_panel = get_tag(obj, "instancewise")
 
             X_out_series = X_out_scitype == "Series"
             X_out_prim = X_out_scitype == "Primitives"
@@ -162,7 +162,7 @@ class TransformerTestScenario(TestScenario, BaseObject):
             else:
                 raise RuntimeError(
                     "transformer with unexpected combination of tags: "
-                    f"X_out_scitype = {X_out_scitype}, scitype:instancewise = {X_panel}"
+                    f"X_out_scitype = {X_out_scitype}, instancewise = {X_panel}"
                 )
 
         else: