added occur* and subst*