Nit: I think it passes the id to the callback instead of returning it.  Saying `return` here confused me at first since the function is async.