feature(builder): allow usage of existing end nodes

commit includes refactorings