If think long-term it would be good to have common code supporting a configurable number of components. If this is still a work in progress, I'm happy to merge the current code and then migrate to a unified class as a follow-up once your changes are ready.