smarter clear-locals
don't close-over method args
fix :once propagation