steps.add(0, new StepUp());
    private void makeRelative(PropertyList source) {        assert !isEmpty();        Step first = steps.get(0);        if (!first.isRoot()) {            //no work needed            return;        }        //remove the relative reference.        steps.remove(first);        //now we count the number of steps to a parent.        PropertyList node = source;        while (!node.isToplevel()) {            //insert a new upward step            steps.add(0, new StepUp());            ParentNode parent = node.getParent();            if (parent==null || !(parent instanceof PropertyList)) {                //bad type. bail out now.                throw new CdlRuntimeException(ERROR_NO_TOPLEVEL);            }            node = (PropertyList) parent;        }        //here we are at a toplevel node        //nothing remains to be done        assert isRelative();    }