All of this won't work for remote logging, because in that case the implementation of the ```IThrowableProxy``` will be ```ThrowableProxyVO```. In order to have a clean implementation one should only use the methods provided by the interface of ```IThrowableProxy``` to construct a valid json error object, which does not seem to be possible with the current implementation of the bugsnag client api.

I would suggest to create an interface called ```Event``` and rename the current implementation of ```Error``` to something like ```ThrowableEvent``` (making it implement the ```Event``` interface) and add a new implementation called ```IThrowableProxyEvent```. The interface should provide getters for all declared fields of the "event" object, see [here](https://bugsnag.com/docs/notifier-api#json-payload).

The aspect of serializing the object to json could then be done by another class which would just operate on the ```Event``` interface.

Btw. If you want me to throw in some code, I would be happy to contribute. I will probably have some time during the upcoming weekend.