Thanks for the review  - I guess you're right, in that it's definite over-engineering with regard to solving the problem I actually want to solve (the memory consumption in IndexPack).

I think I was a bit drawn into doing this refactor because I have a personal preference for smaller classes, and when I see three methods all doing the same type of action I get a pavlovian desire to define an interface - it's something my therapist and I are working on.

In any case, you're right, it's not necessary for the end result I want, so I'll abandon this change.