set up threaded receiver callback