multithreading

the work queue can be saved to preserve reports when not online
multithreading has been added to the app sender