LPS-43938 Just a proof of concept pull request

Just so that you can see how it would be finished. It contains a commit with my copy/paste implementation (1261c51), one with the reuse base class (84a61e8), and the rest are adaptations of your modifications.