inline
outer with lambda