Further cleanup and other changes.. introduced the return of an Option<T> in the closure