Не факт, что дерево. Может, он захочет сразу из корневого узла получить терминальный узел и не дублировать его как отдельную ветвь? То есть иметь для некоторых вершин ненулеву...
Скопируй весь нужный код на gist.github.com или пастбин какой-нибудь и скинь, перед этим сформулировав каким должен быть результат и чем он отличается от текущего. Из этих кус...
Кстати, кто-нибудь в райдере делал миграции? Последний раз, когда пытался, не получилось нужные пакеты скачать)
То есть ты хочешь "вручную" вести айдишники?
О каком GUI речь?