That is a good point. I don't like either how functionally the work is split up rather than self-contained within `Network`, but I think it's a reasonable penalty in order to avoid the above issues. There's also the consideration that things may become more complicated than just "matching type to list" in the future, such as objects doing type-specific stuff before they are added to a Network (i.e. stuff that can only be done once the network is known).