move touch to util, don't make a local var
run reports in a separate thread