Modified retry logic. Initializing required variables using a macro, changing backoff to a multiplier, changed reties to max_tries (there is a functional difference), changed all defaults. The default functionality from the upstream version is now the same again - meaning, by default, max_tries is 1, and there is no wait/retry/backoff loop - even for getter methods. Assuming reasonable safe defaults of 0.1s initial delay and 2x multiplier for backoff in the event that a user requests >1 max_tries. Initial delay and backoff multiplier can still be set via arguments.