don't close over function params