Ну тут тогда компоненты на которые ты разбил, должны сообщаться только через протоколы. Поэтому стоит разграничить вид, конфигурацию, представление, итератор. В конфигурацию, нужно закидывать твои изначальные данные аргументов. А каким образом, можно хоть из нескольких объектов, это уже для разграничения сущностей.