variables substitution