Refactored.
ExceptionContext contains additional information about activity throwing the exception.
Cleaned up tests.