implement fast subst system