refactored exceptions caused by other exceptions

cause is now given as object instead of converted to string
used completion service to handled results of cross workers in the order in which they complete