public ItemStack addToItem(ItemStack item, int enchantLevel) {
        ItemMeta meta = item.getItemMeta();
        List<String> metaLore = meta.getLore() == null ? new ArrayList<String>() : meta.getLore();

        for (String lore : metaLore) {
            if (lore.contains(this.enchantName)) {

                // Confirm that the enchanting name is the same
                String loreName = ENameParser.parseName(lore);
                if (loreName == null) continue;
                if (!enchantName.equalsIgnoreCase(loreName)) continue;

                // Compare the enchantment levels
                String[] pieces = lore.split(" ");
                int level = ERomanNumeral.getValueOf(pieces[pieces.length - 1]);
                if (level == 0) continue;

                // Leave higher enchantments alone
                if (level >= enchantLevel) return item;

                // Replace lower enchantments
                List<String> newLore = meta.getLore();
                newLore.remove(lore);
                meta.setLore(newLore);
                break;
            }
        }

        // Add the enchantment
        metaLore.add(0, ChatColor.GRAY + this.enchantName + " " + ERomanNumeral.numeralOf(enchantLevel));
        meta.setLore(metaLore);
        item.setItemMeta(meta);
        return item;
    }