added request hash and ability to abort duplicate requests