add logger, create client provider, handle exceptions