final Target target = getTarget().getTarget();
final List<PolicyTreeElement> copy = new ArrayList<PolicyTreeElement>(children.size());
for(final PolicyElementNode child : children)
copy.add(child.create());
final URI useId = (id == null) ? getId() : id;
return new PolicySet(useId, algorithm, getDescription(), target, copy);
}