refactor to use make-expansion for clarity