Something similar to this was one of my first approaches when starting working on this issue. However I had to undo it because the API module was losing its separation from IMPL. The RequestAuthenticator implementations reside in IMPL but the ClientBuilder resides in API. I'll doble check if your suggestion helps me remove the if/switch existing in HttpClientRequestExecutor