progressive substitution