some enhancements to request()