#742 - refactoring to extract use billing address into own overridable method and ability to use temporary billing address instead of the one returned from the gateway