nit: Is it safer to have a cleanup/close/dispose/whatever operation? This way the request object doesn't need to be aware of the internals of the protect object.