private Mana_Part getManaPart(String partCost) {
        if (partCost.length() == 3) {
            return new Mana_PartSplit(partCost);
        } else if (Character.isDigit(partCost.charAt(0))) {
            return new Mana_PartColorless(partCost);
        } else if (partCost.equals("S")) {
            return new Mana_PartSnow();
        } else if (partCost.startsWith("P")) {
            return new Mana_PartPhyrexian(partCost);
        } else {
            return new Mana_PartColor(partCost);
        }
    }