public void refundPaidCost(Card source) {
        // prereq: isUndoable is called first
        if (tapCost)
            source.untap();
        else if (untapCost)
            source.tap();

        if (subtractCounterCost)
            source.addCounterFromNonEffect(counterType, counterAmount);
        else if (addCounterCost)
            source.subtractCounter(counterType, counterAmount);

        // refund chained mana abilities?
    }