Use request/response objects so we can call a nice executor function.

This allows us to have a place where we centrally manage success/failure counters
Here we could also log the EventStream message and/or notify an error reporter.
Added logging of response object