Ну, кажись деление на модули в lua коде удобное, так что все сделаю на них. Что бы можно было в каждом конкретном таргете в случае надобности подменить любые визиторы из какого-то набора на свои, более специализированные, а сам набор юзать как есть. В итоге переиспользование с набора порежется до конкретного визитора.