Why do we even need different lists at all? Why can't we just keep everything in one list? In the builder, you would just build things in the order they were added, which should always work (i.e., connections won't be added until the things they're connecting are).