better substitution patterns