exceptions which get passed up should also include the original exception via the constructor so the cause doesn't get lost