What's the use-case for the "cause"? (note that the Throwable need to be serializable otherwise we're going to have issues in remoting)