use temp variables in expressions to support multiple yields