But yeah, using this closure means creating at least 3 closures every time resolve() is called, and that just feels wrong to me