refactoring: seperated substitution exectution from evaluation if predicates and expressions (interp method)