make resolve_path lazyish again by boxing the iterator