Is this wrapping necessary? Why not just pass out sub through the result?