use variable-except internally to avoid '||