playing with early returns on closures
early return is lexically scoped