closure can catch external subs