use move || instead of proc()