adding substitution support