also use "id" instead of "pre" in arity operator