use clearer messages in the retry method
pass the error logger to use instead the ugly if/else mess