setParent has become virtual because that actions that are needed for this are probably different for each domain type. The actual implementation will wait until the semantics of setParent are clear