Use a callback instead of a queue for results from the worker, makes for easier integration with signals
...