Use std::function for callback instead of signals
Remove the limitation of having only 1 slot for every request.