use the appropriate exit code
use a safer wrapper for release()/retain() and release() the request object after use