+ capture function to generate closure, close #6
= expanded withHandler signature