nit: might be better to not wrap e in another Error object.