public Id addOrComplete(Element<?> element) {
        for (Element actual : elements) {
            if (actual.isSameElementAs(element)) {
                actual.completeWith(element);
                return actual.getId();
            }
        }

        // still there? one doesn't find it, so let's create it
        Id id = nextId();
        elements.add(element.usingId(id));
        return id;
    }