lambda capture(wip)
refactor
wip