public class FXService {
    private final CurrencyConverter currencyConverter;
    private final BankService bankService;
    private final double commissionPer;

    public String transfer(Money money, BankAccount destinationAccount, Currency target) {

        String sourceCurrency = money.currency().name();
        String targetCurrency = target.name();

        double commissionAmount = calculateCommission(money.amount());
        double fxRate = currencyConverter.convert(1, sourceCurrency, targetCurrency); // First interaction  

        double transferAmount = calculateTransferAmount(money, commissionAmount);
        double totalAmount = applyFxRate(transferAmount, fxRate);

        String transactionId = bankService.deposit(totalAmount, destinationAccount); // Second interaction 

        return transactionId;
    }
}