out-of-process listener