capture free vars