Found a small memory leak.
Nice catch! Wouldn't it be better to delete the request from Execute itself instead of ExecuteFinished. Since request was created here, it probably makes more sense to delete it here
I think that request needs to stay around until the callback finishes, then it is deleted here, but req created here was not being deleted?