Put the threading into session manager which cleans up the code a bit.
Now propagates exceptions