use normalized QS everywhere, i think
inform user if report is in progress or failed
begin to refactor _search() into a non-request-based utility function that just receives a querystring