working on substitution