[REFACTOR] @0.25 refs #35787 Refactored the classes to use generic types