private void addChild(Node child) throws NetworkException {
            children.add(child);
            for (Iterator<Node> it = children.iterator(); it.hasNext();) {
                Node have = it.next();
                if (have == child) {
                    continue;
                }
                if (child.getNetwork().containsAddress(have.getNetwork().getAddress())) {
                    it.remove();
                    child.addChild(have);
                }
            }
        }