added a wrapper to handle timing and sending so applications can inject
their own logging instead relying on annotations