Refactored to support multiple expressions