[Add] support attaching custom data to the request

and getting it back in the response callback.