public ManaCost subtractMana(SpellAbility sa, ManaCost m, Ability_Mana... mAbilities) {
        ArrayList<Ability_Mana> paidAbs = sa.getPayingManaAbilities();

        if (mAbilities.length == 0) {
            // paying from Mana Pool
            if (m.isPaid() || isEmpty()) return m;

            String[] cost = formatMana(m.toString());
            return subtractMultiple(sa, cost, m);
        }

        // paying via Mana Abilities
        for (Ability_Mana mability : mAbilities) {
            paidAbs.add(mability);
            String[] cost = formatMana(mability);
            m = subtractMultiple(sa, cost, m);
        }

        return m;
    }