private void mergeNewChildren (Collection<AbstractPage> oldChildren, Collection<AbstractPage> newChildren) {
		childPages.clear(); // discard previous data if any.
		List<AbstractPage> resultChildren = new LinkedList<>();
		
		for (AbstractPage newChild: newChildren) {
			// search if exactly that child existed.
			AbstractPage oldChild = null;
			for (AbstractPage current: oldChildren)
				if (newChild.url.equals(current.url) &&
					newChild.getClass().equals(current.getClass()) &&
					((newChild.saveTo == null && current.saveTo==null) || newChild.saveTo.equals(current.saveTo))) { // last check is probably excessive
					oldChild = current; break;
				}
			
			if (oldChild != null) {
				resultChildren.add(oldChild);
			} else
				resultChildren.add(newChild);
		}
		childPages.addAll(resultChildren); // at this point new children become published, as childPages is of unprotected access
	}